}
-static int i802_wireless_event_init(void *priv)
+static int i802_wireless_event_init(struct i802_driver_data *drv)
{
- struct i802_driver_data *drv = priv;
int s;
struct sockaddr_nl local;
}
-static void i802_wireless_event_deinit(void *priv)
+static void i802_wireless_event_deinit(struct i802_driver_data *drv)
{
- struct i802_driver_data *drv = priv;
if (drv->wext_sock < 0)
return;
eloop_unregister_read_sock(drv->wext_sock);
if (i802_init_sockets(drv, bssid))
goto failed;
+ if (i802_wireless_event_init(drv))
+ goto failed;
+
return drv;
failed:
struct i802_driver_data *drv = priv;
struct i802_bss *bss, *prev;
+ i802_wireless_event_deinit(drv);
+
if (drv->last_freq_ht) {
/* Clear HT flags from the driver */
struct hostapd_freq_params freq;
.init = i802_init,
.init_bssid = i802_init_bssid,
.deinit = i802_deinit,
- .wireless_event_init = i802_wireless_event_init,
- .wireless_event_deinit = i802_wireless_event_deinit,
.set_ieee8021x = i802_set_ieee8021x,
.set_privacy = i802_set_privacy,
.set_key = i802_set_key,