diff options
author | Dave Hansen <haveblue@us.ibm.com> | 2005-07-30 15:49:58 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-07-30 18:17:22 -0400 |
commit | 0cd545d6ba0e0138782eb0ec287d0eb3db529b69 (patch) | |
tree | 0039836752d1ae1a3d3aab8b514e9159573fd146 /drivers/net/wireless/hostap | |
parent | 0ef79ee22cf5c1b177184c18b6525889bcc6681f (diff) |
[PATCH] hostap update
Create sysfs "device" files for hostap
I was writing some scripts to automatically build kismet source lines,
and I noticed that hostap devices don't have device files, unlike my
prism54 and ipw2200 cards:
$ ls -l /sys/class/net/eth0/device
/sys/class/net/eth0/device -> ../../../devices/pci0000:00/0000:00:1e.0/0000:02:01.0
$ ls -l /sys/class/net/wifi0
ls: /sys/class/net/wifi0/device: No such file or directory
$ ls -l /sys/class/net/wlan0
ls: /sys/class/net/wlan0/device: No such file or directory
The following (quite small) patch makes sure that both the wlan and wifi
net devices have that pointer to the bus device.
This way, I can do things like
for i in /sys/class/net/*; do
if ! [ -e $i/device/drive ]; then
continue;
fi;
driver=$(basename $(readlink $i/device/driver))
case $driver in
hostap*)
echo -- hostap,$i,$i-$driver
break;
ipw2?00)
echo -- $driver,$i,$i-$driver
break;
prism54)
echo prism54g,$i
esac
done
Which should generate a working set of source lines for kismet no matter
what order I plug the cards in.
It might also be handy to have a link between the two net devices, but
that's a patch for another day.
That patch is against 2.6.13-rc1-mm1.
-- Dave
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Jouni Malinen <jkmaline@cc.hut.fi>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/net/wireless/hostap')
-rw-r--r-- | drivers/net/wireless/hostap/hostap.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_cs.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_hw.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_pci.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_plx.c | 3 |
5 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/wireless/hostap/hostap.c b/drivers/net/wireless/hostap/hostap.c index 366cefbaca59..ea30ba806050 100644 --- a/drivers/net/wireless/hostap/hostap.c +++ b/drivers/net/wireless/hostap/hostap.c | |||
@@ -137,6 +137,7 @@ struct net_device * hostap_add_interface(struct local_info *local, | |||
137 | if (strchr(dev->name, '%')) | 137 | if (strchr(dev->name, '%')) |
138 | ret = dev_alloc_name(dev, dev->name); | 138 | ret = dev_alloc_name(dev, dev->name); |
139 | 139 | ||
140 | SET_NETDEV_DEV(dev, mdev->class_dev.dev); | ||
140 | if (ret >= 0) | 141 | if (ret >= 0) |
141 | ret = register_netdevice(dev); | 142 | ret = register_netdevice(dev); |
142 | 143 | ||
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c index f915f0c75cf4..649502488d54 100644 --- a/drivers/net/wireless/hostap/hostap_cs.c +++ b/drivers/net/wireless/hostap/hostap_cs.c | |||
@@ -725,7 +725,8 @@ static int prism2_config(dev_link_t *link) | |||
725 | } | 725 | } |
726 | 726 | ||
727 | /* Need to allocate net_device before requesting IRQ handler */ | 727 | /* Need to allocate net_device before requesting IRQ handler */ |
728 | dev = prism2_init_local_data(&prism2_pccard_funcs, 0); | 728 | dev = prism2_init_local_data(&prism2_pccard_funcs, 0, |
729 | &handle_to_dev(link->handle)); | ||
729 | if (dev == NULL) | 730 | if (dev == NULL) |
730 | goto failed; | 731 | goto failed; |
731 | link->priv = dev; | 732 | link->priv = dev; |
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c index 039ef7f61bee..7572050db32d 100644 --- a/drivers/net/wireless/hostap/hostap_hw.c +++ b/drivers/net/wireless/hostap/hostap_hw.c | |||
@@ -3268,7 +3268,8 @@ static void prism2_clear_set_tim_queue(local_info_t *local) | |||
3268 | 3268 | ||
3269 | 3269 | ||
3270 | static struct net_device * | 3270 | static struct net_device * |
3271 | prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx) | 3271 | prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx, |
3272 | struct device *sdev) | ||
3272 | { | 3273 | { |
3273 | struct net_device *dev; | 3274 | struct net_device *dev; |
3274 | struct hostap_interface *iface; | 3275 | struct hostap_interface *iface; |
@@ -3439,6 +3440,7 @@ while (0) | |||
3439 | 3440 | ||
3440 | rtnl_lock(); | 3441 | rtnl_lock(); |
3441 | ret = dev_alloc_name(dev, "wifi%d"); | 3442 | ret = dev_alloc_name(dev, "wifi%d"); |
3443 | SET_NETDEV_DEV(dev, sdev); | ||
3442 | if (ret >= 0) | 3444 | if (ret >= 0) |
3443 | ret = register_netdevice(dev); | 3445 | ret = register_netdevice(dev); |
3444 | rtnl_unlock(); | 3446 | rtnl_unlock(); |
diff --git a/drivers/net/wireless/hostap/hostap_pci.c b/drivers/net/wireless/hostap/hostap_pci.c index 3a208989333e..c4c7b2f2e8ac 100644 --- a/drivers/net/wireless/hostap/hostap_pci.c +++ b/drivers/net/wireless/hostap/hostap_pci.c | |||
@@ -308,7 +308,8 @@ static int prism2_pci_probe(struct pci_dev *pdev, | |||
308 | pci_set_master(pdev); | 308 | pci_set_master(pdev); |
309 | #endif /* PRISM2_BUS_MASTER */ | 309 | #endif /* PRISM2_BUS_MASTER */ |
310 | 310 | ||
311 | dev = prism2_init_local_data(&prism2_pci_funcs, cards_found); | 311 | dev = prism2_init_local_data(&prism2_pci_funcs, cards_found, |
312 | &pdev->dev); | ||
312 | if (dev == NULL) | 313 | if (dev == NULL) |
313 | goto fail; | 314 | goto fail; |
314 | iface = netdev_priv(dev); | 315 | iface = netdev_priv(dev); |
diff --git a/drivers/net/wireless/hostap/hostap_plx.c b/drivers/net/wireless/hostap/hostap_plx.c index ec33501e094a..e29ac2271bd2 100644 --- a/drivers/net/wireless/hostap/hostap_plx.c +++ b/drivers/net/wireless/hostap/hostap_plx.c | |||
@@ -522,7 +522,8 @@ static int prism2_plx_probe(struct pci_dev *pdev, | |||
522 | * not present; but are there really such cards in use(?) */ | 522 | * not present; but are there really such cards in use(?) */ |
523 | } | 523 | } |
524 | 524 | ||
525 | dev = prism2_init_local_data(&prism2_plx_funcs, cards_found); | 525 | dev = prism2_init_local_data(&prism2_plx_funcs, cards_found, |
526 | &pdev->dev); | ||
526 | if (dev == NULL) | 527 | if (dev == NULL) |
527 | goto fail; | 528 | goto fail; |
528 | iface = netdev_priv(dev); | 529 | iface = netdev_priv(dev); |