netxen: remove netxen workqueue
authorAmit Kumar Salecha <amit@qlogic.com>
Thu, 13 Aug 2009 07:03:00 +0000 (07:03 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Aug 2009 23:33:03 +0000 (16:33 -0700)
commite424fa9d6a0add1a9b812b07e3607daaa5b9e53d
tree3c29efe8d877845647c32d60a9b20f3fa4950093
parent237057ad3fe5644fa471be474a160de2fc2e5870
netxen: remove netxen workqueue

o Remove private workqueue in the driver, move all
  scheduled tasks to keventd workqueues. This makes
  ports (interfaces) of same / different NIC boards
  independent, in terms of their link watchdog and
  reset tasks.

o Move quick checks for link status and temperature
  in timer callback, schedule watchdog task only if
  link status changed or temperature reached critical
  threshold.

This also fixes deadlock when thermal panic occurs,
watchdog work was flushing workqueue that it was
sitting on.

Signed-off-by: Amit Kumar Salecha <amit@qlogic.com>
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/netxen/netxen_nic.h
drivers/net/netxen/netxen_nic_main.c