ATM: iphase, remove sleep-inside-atomic
authorJiri Slaby <jslaby@suse.cz>
Sun, 10 Oct 2010 23:26:57 +0000 (23:26 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Oct 2010 18:05:42 +0000 (11:05 -0700)
commitec622ab072e95cf96e78ab4d39d4eea874518c80
tree8bd6a7a06f8f5c4f830d01b567532ec204d5feae
parent5518b29f225dbdf47ded02cf229ff8225a2cdf82
ATM: iphase, remove sleep-inside-atomic

Stanse found that ia_init_one locks a spinlock and inside of that it
calls ia_start which calls:
* request_irq
* tx_init which does kmalloc(GFP_KERNEL)

Both of them can thus sleep and result in a deadlock. I don't see a
reason to have a per-device spinlock there which is used only there
and inited right before the lock location. So remove it completely.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Chas Williams <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/atm/iphase.c
drivers/atm/iphase.h