macintosh/via-macii: Access autopoll_devs when inside lock
[ Upstream commit5.4-rM2-2.2.x-imx-squashed59ea38f6b3
] The interrupt handler should be excluded when accessing the autopoll_devs variable. Fixes:d95fd5fce8
("m68k: Mac II ADB fixes") # v5.0+ Signed-off-by: Finn Thain <fthain@telegraphics.com.au> Tested-by: Stan Johnson <userm57@yahoo.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/5952dd8a9bc9de90f1acc4790c51dd42b4c98065.1593318192.git.fthain@telegraphics.com.au Signed-off-by: Sasha Levin <sashal@kernel.org>
parent
a88f86763c
commit
8456017563
|
@ -270,15 +270,12 @@ static int macii_autopoll(int devs)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
|
||||||
/* bit 1 == device 1, and so on. */
|
/* bit 1 == device 1, and so on. */
|
||||||
autopoll_devs = devs & 0xFFFE;
|
autopoll_devs = devs & 0xFFFE;
|
||||||
|
|
||||||
if (!autopoll_devs)
|
if (autopoll_devs && !current_req) {
|
||||||
return 0;
|
|
||||||
|
|
||||||
local_irq_save(flags);
|
|
||||||
|
|
||||||
if (current_req == NULL) {
|
|
||||||
/* Send a Talk Reg 0. The controller will repeatedly transmit
|
/* Send a Talk Reg 0. The controller will repeatedly transmit
|
||||||
* this as long as it is idle.
|
* this as long as it is idle.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue