[Prism54-devel] [PATCH/RFC] mgmt_timeout handling
Denis Vlasenko
vda at port.imtp.ilyichevsk.odessa.ua
Sun Aug 15 20:13:33 UTC 2004
On Sunday 15 August 2004 01:01, Denis Vlasenko wrote:
> Hi folks,
>
> Here we go again. What do you think about applying this?
>
> Meanwhile, I will do some run testing. Do not apply yet.
I caught the long-sought (by me) 'reset hangs' bug.
It happens rarely.
I did iwconfig <iface> master ... :
21:54:36 ifp: prism54_set_mode(): down_write(mib_sem)
21:54:36 islpci_mgt_transaction(op 1, oid ff020008, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid ff020003, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 10000000, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 17000007, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 19000001, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 10000002, sendlen 34)
21:54:36 islpci_mgt_transaction(op 1, oid 19000004, sendlen 8)
21:54:36 islpci_mgt_transaction(op 1, oid 12000000, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 12000001, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 12000002, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 12000004, sendlen 34)
21:54:36 islpci_mgt_transaction(op 1, oid 12000005, sendlen 34)
21:54:36 islpci_mgt_transaction(op 1, oid 12000006, sendlen 34)
21:54:36 islpci_mgt_transaction(op 1, oid 12000007, sendlen 34)
21:54:36 islpci_mgt_transaction(op 1, oid 12000003, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 150007e0, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid ff02000c, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 1700000a, sendlen 21)
21:54:36 islpci_mgt_transaction(op 1, oid 17000020, sendlen 21)
21:54:36 islpci_mgt_transaction(op 1, oid ff020003, sendlen 4)
21:54:36 islpci_mgt_transaction(op 0, oid 00000000, sendlen 6)
21:54:36 ifp: prism54_set_mode(): up_write(mib_sem)
21:54:36 ifp: mgt_set_request(): down_write(mib_sem)
21:54:36 islpci_mgt_transaction(op 1, oid 10000002, sendlen 34)
21:54:36 ifp: mgt_set_request(): up_write(mib_sem)
21:54:36 ifp: prism54_set_mode(): down_write(mib_sem)
21:54:36 islpci_mgt_transaction(op 1, oid ff020008, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid ff020003, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 10000000, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 17000007, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 19000001, sendlen 4)
21:54:36 islpci_mgt_transaction(op 1, oid 10000002, sendlen 34)
21:54:36 islpci_mgt_transaction(op 1, oid 19000004, sendlen 8)
21:54:36 ifp: timeout waiting for mgmt response. timeout_left=1000. triggering device
21:54:37 ghost default.hotplug[19592]: invoke /usr/app/hotplug-2004_01_05/script/firmware.agent ()
21:54:37 ghost firmware.agent[19592]: /usr/app/hotplug-2004_01_05/firmware/isl3890 found, loading it into /sys//class/firmware/0000:00:09.0/data
21:54:37 ifp: timeout waiting for mgmt response. oid=19000004. resetting device
writing DOT11_OID_PSMBUFFER failed.
here the new reset code kicks in...
21:54:37 ifp: resetting device...
21:54:37 ifp: uploading firmware...
21:54:37 ghost default.hotplug[19607]: invoke /usr/app/hotplug-2004_01_05/script/firmware.agent ()
21:54:37 ifp: islpci_upload_fw: success
21:54:38 ifp: got 'reset complete' IRQ
21:54:38 ifp: calling isl38xx_enable_common_interrupts()
21:54:38 ifp: calling down_write(mib_sem)
deadlock: we already downed it!
21:54:40 NETDEV WATCHDOG: ifp: transmit timed out
21:54:40 ifp: tx_timeout
21:54:40 NETDEV WATCHDOG: ifp: transmit timed out
21:54:40 ifp: tx_timeout
21:54:42 NETDEV WATCHDOG: ifp: transmit timed out
21:54:42 ifp: tx_timeout
21:54:44 NETDEV WATCHDOG: ifp: transmit timed out
21:54:44 ifp: tx_timeout
21:54:46 NETDEV WATCHDOG: ifp: transmit timed out
21:54:46 ifp: tx_timeout
we're toast
Argh. So how shall we handle failure in islpci_mgt_transaction(), then?
--
vda
More information about the Prism54-devel
mailing list