diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-06-25 03:41:03 +0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-06-25 03:41:03 +0800 | 
| commit | c88e40e07cd967dcdf37321a63ab6e8b0d881100 (patch) | |
| tree | 0f7bda70a3448e234851da937da12f175bb73caa | |
| parent | 39071cf828b42fa62336849dc910d7b74c905698 (diff) | |
| parent | 63b2de12b7eeacfb2edbe005f5c3cff17a2a02e2 (diff) | |
Merge tag 'mfd-fixes-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull mfd bugfix from Lee Jones.
Fix stmfx type confusion between regmap_read() (which takes an "u32")
and the bitmap operations (which take an "unsigned long" array).
* tag 'mfd-fixes-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd:
  mfd: stmfx: Fix an endian bug in stmfx_irq_handler()
  mfd: stmfx: Uninitialized variable in stmfx_irq_handler()
| -rw-r--r-- | drivers/mfd/stmfx.c | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/drivers/mfd/stmfx.c b/drivers/mfd/stmfx.c index fe8efba2d45f..857991cb3cbb 100644 --- a/drivers/mfd/stmfx.c +++ b/drivers/mfd/stmfx.c @@ -204,12 +204,11 @@ static struct irq_chip stmfx_irq_chip = {  static irqreturn_t stmfx_irq_handler(int irq, void *data)  {  	struct stmfx *stmfx = data; -	unsigned long n, pending; -	u32 ack; -	int ret; +	unsigned long bits; +	u32 pending, ack; +	int n, ret; -	ret = regmap_read(stmfx->map, STMFX_REG_IRQ_PENDING, -			  (u32 *)&pending); +	ret = regmap_read(stmfx->map, STMFX_REG_IRQ_PENDING, &pending);  	if (ret)  		return IRQ_NONE; @@ -224,7 +223,8 @@ static irqreturn_t stmfx_irq_handler(int irq, void *data)  			return IRQ_NONE;  	} -	for_each_set_bit(n, &pending, STMFX_REG_IRQ_SRC_MAX) +	bits = pending; +	for_each_set_bit(n, &bits, STMFX_REG_IRQ_SRC_MAX)  		handle_nested_irq(irq_find_mapping(stmfx->irq_domain, n));  	return IRQ_HANDLED; | 
