macintosh/via-macii: Fix "BUG: sleeping function called from invalid context"
The via-macii ADB driver calls request_irq() after disabling hard
interrupts. But disabling interrupts isn't necessary here because the
VIA shift register interrupt was masked during VIA1 initialization.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Finn Thain <fthain@linux-m68k.org>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/r/419fcc09d0e563b425c419053d02236b044d86b0.1710298421.git.fthain@linux-m68k.org
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
This commit is contained in:
parent
d39d1677c3
commit
d301a71c76
@ -140,24 +140,19 @@ static int macii_probe(void)
|
|||||||
/* Initialize the driver */
|
/* Initialize the driver */
|
||||||
static int macii_init(void)
|
static int macii_init(void)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
local_irq_save(flags);
|
|
||||||
|
|
||||||
err = macii_init_via();
|
err = macii_init_via();
|
||||||
if (err)
|
if (err)
|
||||||
goto out;
|
return err;
|
||||||
|
|
||||||
err = request_irq(IRQ_MAC_ADB, macii_interrupt, 0, "ADB",
|
err = request_irq(IRQ_MAC_ADB, macii_interrupt, 0, "ADB",
|
||||||
macii_interrupt);
|
macii_interrupt);
|
||||||
if (err)
|
if (err)
|
||||||
goto out;
|
return err;
|
||||||
|
|
||||||
macii_state = idle;
|
macii_state = idle;
|
||||||
out:
|
return 0;
|
||||||
local_irq_restore(flags);
|
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* initialize the hardware */
|
/* initialize the hardware */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user