summaryrefslogtreecommitdiff
path: root/wilink_6_1/wpa_supplicant_lib/driver_ti.c
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2009-10-09 14:21:05 -0700
committerDmitry Shmidt <dimitrysh@google.com>2009-10-09 14:21:05 -0700
commit04a14a26b41b74cec54807d364bc85563bd73dd4 (patch)
treeb054f2303c3bb26d7bd264a89b55ebac3c5b08b1 /wilink_6_1/wpa_supplicant_lib/driver_ti.c
parent324619d1785613830184dd9fc7f45c22f5f1b2be (diff)
downloadti-04a14a26b41b74cec54807d364bc85563bd73dd4.tar.gz
Add sending HANGED message if driver is irresponsive
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'wilink_6_1/wpa_supplicant_lib/driver_ti.c')
-rw-r--r--wilink_6_1/wpa_supplicant_lib/driver_ti.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/wilink_6_1/wpa_supplicant_lib/driver_ti.c b/wilink_6_1/wpa_supplicant_lib/driver_ti.c
index a579be1..5b1d637 100644
--- a/wilink_6_1/wpa_supplicant_lib/driver_ti.c
+++ b/wilink_6_1/wpa_supplicant_lib/driver_ti.c
@@ -134,12 +134,17 @@ static int wpa_driver_tista_private_send( void *priv, u32 ioctl_cmd, void *bufIn
iwr.u.data.flags = 0;
res = ioctl(drv->ioctl_sock, SIOCIWFIRSTPRIV, &iwr);
- if(res != 0)
+ if (0 != res)
{
wpa_printf(MSG_ERROR, "ERROR - wpa_driver_tista_private_send - error sending Wext private IOCTL to STA driver (ioctl_cmd = %x, res = %d, errno = %d)", ioctl_cmd, res, errno);
+ drv->errors++;
+ if (drv->errors > MAX_NUMBER_SEQUENTIAL_ERRORS) {
+ drv->errors = 0;
+ wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED");
+ }
return -1;
}
-
+ drv->errors = 0;
wpa_printf(MSG_DEBUG, "wpa_driver_tista_private_send ioctl_cmd = %x res = %d", ioctl_cmd, res);
return 0;
@@ -153,7 +158,7 @@ static int wpa_driver_tista_driver_start( void *priv )
res = wpa_driver_tista_private_send(priv, DRIVER_START_PARAM, &uDummyBuf, sizeof(uDummyBuf), NULL, 0);
- if(0 != res)
+ if (0 != res)
wpa_printf(MSG_ERROR, "ERROR - Failed to start driver!");
else {
os_sleep(0, WPA_DRIVER_WEXT_WAIT_US); /* delay 400 ms */
@@ -593,6 +598,11 @@ static int wpa_driver_tista_driver_cmd( void *priv, char *cmd, char *buf, size_t
wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STOPPED");
}
}
+ if( os_strcasecmp(cmd, "reload") == 0 ) {
+ wpa_printf(MSG_DEBUG,"Reload command");
+ ret = 0;
+ wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED");
+ }
else if( os_strcasecmp(cmd, "macaddr") == 0 ) {
wpa_driver_tista_get_mac_addr(priv);
wpa_printf(MSG_DEBUG, "Macaddr command");
@@ -834,6 +844,9 @@ void * wpa_driver_tista_init(void *ctx, const char *ifname)
/* BtCoex mode is read from tiwlan.ini file */
drv->btcoex_mode = 0; /* SG_DISABLE */
+
+ /* Number of sequential errors */
+ drv->errors = 0;
return drv;
}