From: John W. Linville Date: Wed, 19 Oct 2005 01:31:02 +0000 (-0400) Subject: [PATCH] via-rhine: change mdelay to msleep and remove from ISR path X-Git-Tag: v2.6.15-rc1~733^2~1^2~21 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ba98d311d0a4ff7dc36d8f435ce60174f4c30ec;p=pandora-kernel.git [PATCH] via-rhine: change mdelay to msleep and remove from ISR path Get rid of the mdelay call in rhine_disable_linkmon. The function is called from the via-rhine versions of mdio_read and mdio_write. Those functions are indirectly called from rhine_check_media and rhine_tx_timeout, both of which can be called in interrupt context. So, create tx_timeout_task and check_media_task as instances of struct work_struct inside of rhine_private. Then, change rhine_tx_timeout to invoke schedule_work for tx_timeout_task (i.e. rhine_tx_timeout_task), moving the work to process context. Also, change rhine_error (invoked from rhine_interrupt) to invoke schedule_work for check_media_task (i.e. rhine_check_media_task), which simply calls rhine_check media in process context. Finally, add a call to flush_scheduled_work in rhine_close to avoid any resource conflicts with pending work items. Signed-off-by: John W. Linville Signed-off-by: Jeff Garzik --- Reading git-diff-tree failed