All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergio Paracuellos <sergio.paracuellos@gmail.com>
To: gregkh@linuxfoundation.org
Cc: neil@brown.name, driverdev-devel@linuxdriverproject.org
Subject: [PATCH 5/7] staging: mt7621-gpio: change lock place in irq mask and unmask functions
Date: Fri, 25 May 2018 18:54:51 +0200	[thread overview]
Message-ID: <1527267293-1862-6-git-send-email-sergio.paracuellos@gmail.com> (raw)
In-Reply-To: <1527267293-1862-1-git-send-email-sergio.paracuellos@gmail.com>

Functions mediatek_gpio_irq_umask mediatek_gpio_irq_unmask are
reading and modifying registers but only the write is being hold.
It should be a complete lock instead for those which are type of
"read-modify-write". This makes more sense.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Reviewed-by: NeilBrown <neil@brown.name>
---
 drivers/staging/mt7621-gpio/gpio-mt7621.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/mt7621-gpio/gpio-mt7621.c b/drivers/staging/mt7621-gpio/gpio-mt7621.c
index 143268a..c96ae67 100644
--- a/drivers/staging/mt7621-gpio/gpio-mt7621.c
+++ b/drivers/staging/mt7621-gpio/gpio-mt7621.c
@@ -231,10 +231,9 @@ mediatek_gpio_irq_unmask(struct irq_data *d)
 	if (!rg)
 		return;
 
+	spin_lock_irqsave(&rg->lock, flags);
 	rise = mtk_gpio_r32(rg, GPIO_REG_REDGE);
 	fall = mtk_gpio_r32(rg, GPIO_REG_FEDGE);
-
-	spin_lock_irqsave(&rg->lock, flags);
 	mtk_gpio_w32(rg, GPIO_REG_REDGE, rise | (PIN_MASK(pin) & rg->rising));
 	mtk_gpio_w32(rg, GPIO_REG_FEDGE, fall | (PIN_MASK(pin) & rg->falling));
 	spin_unlock_irqrestore(&rg->lock, flags);
@@ -253,10 +252,9 @@ mediatek_gpio_irq_mask(struct irq_data *d)
 	if (!rg)
 		return;
 
+	spin_lock_irqsave(&rg->lock, flags);
 	rise = mtk_gpio_r32(rg, GPIO_REG_REDGE);
 	fall = mtk_gpio_r32(rg, GPIO_REG_FEDGE);
-
-	spin_lock_irqsave(&rg->lock, flags);
 	mtk_gpio_w32(rg, GPIO_REG_FEDGE, fall & ~PIN_MASK(pin));
 	mtk_gpio_w32(rg, GPIO_REG_REDGE, rise & ~PIN_MASK(pin));
 	spin_unlock_irqrestore(&rg->lock, flags);
-- 
2.7.4

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

  parent reply	other threads:[~2018-05-25 16:55 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-25 16:54 [PATCH 0/7] staging: mt7621-gpio: cleanups to move this driver out of staging Sergio Paracuellos
2018-05-25 16:54 ` [PATCH 1/7] staging: mt7621-gpio: rename MTK_MAX_BANK into MTK_BANK_CNT Sergio Paracuellos
2018-05-25 16:54 ` [PATCH 2/7] staging: mt7621-gpio: use module_platform_driver() instead subsys initcall Sergio Paracuellos
2018-05-25 16:54 ` [PATCH 3/7] staging: mt7621-gpio: fix masks for gpio pin Sergio Paracuellos
2018-05-25 16:54 ` [PATCH 4/7] staging: mt7621-gpio: avoid locking in mediatek_gpio_get_direction Sergio Paracuellos
2018-05-25 16:54 ` Sergio Paracuellos [this message]
2018-05-25 16:54 ` [PATCH 6/7] staging: mt7621-dts: add missing properties to gpio node Sergio Paracuellos
2018-05-25 16:54 ` [PATCH 7/7] staging: mt7621-gpio: dt-bindings: complete documentation for the gpio Sergio Paracuellos
2018-05-27 23:09 ` [PATCH 0/7] staging: mt7621-gpio: cleanups to move this driver out of staging NeilBrown
2018-05-28  4:55   ` Sergio Paracuellos
2018-05-29  4:58   ` [PATCH 0/6] staging: mt7621-gpio: last cleanups Sergio Paracuellos
2018-05-29  4:58     ` [PATCH 1/6] staging: mt7621-dts: fix property #interrupt-cells for the gpio node Sergio Paracuellos
2018-05-29 23:34       ` NeilBrown
2018-05-30  4:50         ` [PATCH v2] staging: mt7621-gpio: update " Sergio Paracuellos
2018-05-31  5:27           ` NeilBrown
2018-05-31 12:20             ` Sergio Paracuellos
2018-06-01  9:18               ` Greg KH
2018-06-01  9:30                 ` [RESEND PATCH 1/6] " Sergio Paracuellos
2018-06-01  9:30                   ` [RESEND PATCH 2/6] staging: mt7621-gpio: dt-bindings: update documentation for #interrupt-cells property Sergio Paracuellos
2018-06-01  9:30                   ` [RESEND PATCH 3/6] staging: mt7621-gpio: change 'to_mediatek_gpio' to make just a one line return Sergio Paracuellos
2018-06-01  9:30                   ` [RESEND PATCH 4/6] staging: mt7621-gpio: use GPIOF_DIR_OUT and GPIOF_DIR_IN macros instead of custom values Sergio Paracuellos
2018-06-01  9:30                   ` [RESEND PATCH 5/6] staging: mt7621-gpio: change gc_map to don't use pointers Sergio Paracuellos
2018-06-01  9:30                   ` [RESEND PATCH 6/6] staging: mt7621-gpio: reorder includes alphabetically Sergio Paracuellos
2018-06-01  9:36                 ` [PATCH v2] staging: mt7621-gpio: update #interrupt-cells for the gpio node Sergio Paracuellos
2018-05-30  4:54         ` [PATCH 1/6] staging: mt7621-dts: fix property " Sergio Paracuellos
2018-05-29  4:58     ` [PATCH 2/6] staging: mt7621-gpio: dt-bindings: update documentation for #interrupt-cells property Sergio Paracuellos
2018-05-29  4:58     ` [PATCH 3/6] staging: mt7621-gpio: change 'to_mediatek_gpio' to make just a one line return Sergio Paracuellos
2018-05-29  4:58     ` [PATCH 4/6] staging: mt7621-gpio: use GPIOF_DIR_OUT and GPIOF_DIR_IN macros instead of custom values Sergio Paracuellos
2018-05-29  4:58     ` [PATCH 5/6] staging: mt7621-gpio: change gc_map to don't use pointers Sergio Paracuellos
2018-05-29  4:58     ` [PATCH 6/6] staging: mt7621-gpio: reorder includes alphabetically Sergio Paracuellos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1527267293-1862-6-git-send-email-sergio.paracuellos@gmail.com \
    --to=sergio.paracuellos@gmail.com \
    --cc=driverdev-devel@linuxdriverproject.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=neil@brown.name \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.