From: Barry Song Date: Thu, 27 Sep 2012 09:55:17 +0000 (+0800) Subject: pinctrl: sirf: fix spinlock deadlock in sirfsoc_gpio_set_input X-Git-Tag: omap-for-v3.7-rc1/fixes-cpufreq-signed~44^2~5 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58d26c1eab8e94f89f17593e11d88a3821be6c3c;p=pandora-kernel.git pinctrl: sirf: fix spinlock deadlock in sirfsoc_gpio_set_input sirfsoc_gpio_set_input() is called in those functions which have held the spinlock, so delete the duplicated locking. Signed-off-by: Barry Song Signed-off-by: Linus Walleij --- diff --git a/drivers/pinctrl/pinctrl-sirf.c b/drivers/pinctrl/pinctrl-sirf.c index f309af2ced25..0f4f833e3c93 100644 --- a/drivers/pinctrl/pinctrl-sirf.c +++ b/drivers/pinctrl/pinctrl-sirf.c @@ -1458,15 +1458,10 @@ static void sirfsoc_gpio_handle_irq(unsigned int irq, struct irq_desc *desc) static inline void sirfsoc_gpio_set_input(struct sirfsoc_gpio_bank *bank, unsigned ctrl_offset) { u32 val; - unsigned long flags; - - spin_lock_irqsave(&bank->lock, flags); val = readl(bank->chip.regs + ctrl_offset); val &= ~SIRFSOC_GPIO_CTL_OUT_EN_MASK; writel(val, bank->chip.regs + ctrl_offset); - - spin_unlock_irqrestore(&bank->lock, flags); } static int sirfsoc_gpio_request(struct gpio_chip *chip, unsigned offset)