diff options
-rw-r--r-- | drivers/net/wireless/libertas/dev.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/main.c | 18 |
2 files changed, 6 insertions, 14 deletions
diff --git a/drivers/net/wireless/libertas/dev.h b/drivers/net/wireless/libertas/dev.h index fb26f18e446e..5cb29235fee3 100644 --- a/drivers/net/wireless/libertas/dev.h +++ b/drivers/net/wireless/libertas/dev.h | |||
@@ -143,8 +143,6 @@ struct lbs_private { | |||
143 | all other bits reserved 0 */ | 143 | all other bits reserved 0 */ |
144 | u8 dnld_sent; | 144 | u8 dnld_sent; |
145 | 145 | ||
146 | struct device *hotplug_device; | ||
147 | |||
148 | /** thread to service interrupts */ | 146 | /** thread to service interrupts */ |
149 | struct task_struct *main_thread; | 147 | struct task_struct *main_thread; |
150 | wait_queue_head_t waitq; | 148 | wait_queue_head_t waitq; |
diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c index f595664f98cc..d03a2f8710fb 100644 --- a/drivers/net/wireless/libertas/main.c +++ b/drivers/net/wireless/libertas/main.c | |||
@@ -256,8 +256,7 @@ void lbs_remove_rtap(struct lbs_private *priv); | |||
256 | static ssize_t lbs_rtap_get(struct device *dev, | 256 | static ssize_t lbs_rtap_get(struct device *dev, |
257 | struct device_attribute *attr, char * buf) | 257 | struct device_attribute *attr, char * buf) |
258 | { | 258 | { |
259 | struct lbs_private *priv = (struct lbs_private *) | 259 | struct lbs_private *priv = to_net_dev(dev)->priv; |
260 | (to_net_dev(dev))->priv; | ||
261 | struct lbs_adapter *adapter = priv->adapter; | 260 | struct lbs_adapter *adapter = priv->adapter; |
262 | return snprintf(buf, 5, "0x%X\n", adapter->monitormode); | 261 | return snprintf(buf, 5, "0x%X\n", adapter->monitormode); |
263 | } | 262 | } |
@@ -269,8 +268,7 @@ static ssize_t lbs_rtap_set(struct device *dev, | |||
269 | struct device_attribute *attr, const char * buf, size_t count) | 268 | struct device_attribute *attr, const char * buf, size_t count) |
270 | { | 269 | { |
271 | int monitor_mode; | 270 | int monitor_mode; |
272 | struct lbs_private *priv = (struct lbs_private *) | 271 | struct lbs_private *priv = to_net_dev(dev)->priv; |
273 | (to_net_dev(dev))->priv; | ||
274 | struct lbs_adapter *adapter = priv->adapter; | 272 | struct lbs_adapter *adapter = priv->adapter; |
275 | 273 | ||
276 | sscanf(buf, "%x", &monitor_mode); | 274 | sscanf(buf, "%x", &monitor_mode); |
@@ -1158,7 +1156,6 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev) | |||
1158 | priv->card = card; | 1156 | priv->card = card; |
1159 | priv->mesh_open = 0; | 1157 | priv->mesh_open = 0; |
1160 | priv->infra_open = 0; | 1158 | priv->infra_open = 0; |
1161 | priv->hotplug_device = dmdev; | ||
1162 | 1159 | ||
1163 | /* Setup the OS Interface to our functions */ | 1160 | /* Setup the OS Interface to our functions */ |
1164 | dev->open = lbs_open; | 1161 | dev->open = lbs_open; |
@@ -1178,15 +1175,13 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev) | |||
1178 | SET_NETDEV_DEV(dev, dmdev); | 1175 | SET_NETDEV_DEV(dev, dmdev); |
1179 | 1176 | ||
1180 | priv->rtap_net_dev = NULL; | 1177 | priv->rtap_net_dev = NULL; |
1181 | if (device_create_file(dmdev, &dev_attr_lbs_rtap)) | ||
1182 | goto err_init_adapter; | ||
1183 | 1178 | ||
1184 | lbs_deb_thread("Starting main thread...\n"); | 1179 | lbs_deb_thread("Starting main thread...\n"); |
1185 | init_waitqueue_head(&priv->waitq); | 1180 | init_waitqueue_head(&priv->waitq); |
1186 | priv->main_thread = kthread_run(lbs_thread, dev, "lbs_main"); | 1181 | priv->main_thread = kthread_run(lbs_thread, dev, "lbs_main"); |
1187 | if (IS_ERR(priv->main_thread)) { | 1182 | if (IS_ERR(priv->main_thread)) { |
1188 | lbs_deb_thread("Error creating main thread.\n"); | 1183 | lbs_deb_thread("Error creating main thread.\n"); |
1189 | goto err_kthread_run; | 1184 | goto err_init_adapter; |
1190 | } | 1185 | } |
1191 | 1186 | ||
1192 | priv->work_thread = create_singlethread_workqueue("lbs_worker"); | 1187 | priv->work_thread = create_singlethread_workqueue("lbs_worker"); |
@@ -1196,9 +1191,6 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev) | |||
1196 | 1191 | ||
1197 | goto done; | 1192 | goto done; |
1198 | 1193 | ||
1199 | err_kthread_run: | ||
1200 | device_remove_file(dmdev, &dev_attr_lbs_rtap); | ||
1201 | |||
1202 | err_init_adapter: | 1194 | err_init_adapter: |
1203 | lbs_free_adapter(priv); | 1195 | lbs_free_adapter(priv); |
1204 | 1196 | ||
@@ -1224,7 +1216,7 @@ int lbs_remove_card(struct lbs_private *priv) | |||
1224 | lbs_remove_rtap(priv); | 1216 | lbs_remove_rtap(priv); |
1225 | 1217 | ||
1226 | dev = priv->dev; | 1218 | dev = priv->dev; |
1227 | device_remove_file(priv->hotplug_device, &dev_attr_lbs_rtap); | 1219 | device_remove_file(&dev->dev, &dev_attr_lbs_rtap); |
1228 | 1220 | ||
1229 | cancel_delayed_work(&priv->scan_work); | 1221 | cancel_delayed_work(&priv->scan_work); |
1230 | cancel_delayed_work(&priv->assoc_work); | 1222 | cancel_delayed_work(&priv->assoc_work); |
@@ -1273,6 +1265,8 @@ int lbs_start_card(struct lbs_private *priv) | |||
1273 | lbs_pr_err("cannot register ethX device\n"); | 1265 | lbs_pr_err("cannot register ethX device\n"); |
1274 | goto done; | 1266 | goto done; |
1275 | } | 1267 | } |
1268 | if (device_create_file(&dev->dev, &dev_attr_lbs_rtap)) | ||
1269 | lbs_pr_err("cannot register lbs_rtap attribute\n"); | ||
1276 | 1270 | ||
1277 | lbs_debugfs_init_one(priv, dev); | 1271 | lbs_debugfs_init_one(priv, dev); |
1278 | 1272 | ||