[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>
This commit is contained in:
@@ -137,6 +137,7 @@ struct net_device * hostap_add_interface(struct local_info *local,
|
|||||||
if (strchr(dev->name, '%'))
|
if (strchr(dev->name, '%'))
|
||||||
ret = dev_alloc_name(dev, dev->name);
|
ret = dev_alloc_name(dev, dev->name);
|
||||||
|
|
||||||
|
SET_NETDEV_DEV(dev, mdev->class_dev.dev);
|
||||||
if (ret >= 0)
|
if (ret >= 0)
|
||||||
ret = register_netdevice(dev);
|
ret = register_netdevice(dev);
|
||||||
|
|
||||||
|
@@ -725,7 +725,8 @@ static int prism2_config(dev_link_t *link)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Need to allocate net_device before requesting IRQ handler */
|
/* Need to allocate net_device before requesting IRQ handler */
|
||||||
dev = prism2_init_local_data(&prism2_pccard_funcs, 0);
|
dev = prism2_init_local_data(&prism2_pccard_funcs, 0,
|
||||||
|
&handle_to_dev(link->handle));
|
||||||
if (dev == NULL)
|
if (dev == NULL)
|
||||||
goto failed;
|
goto failed;
|
||||||
link->priv = dev;
|
link->priv = dev;
|
||||||
|
@@ -3268,7 +3268,8 @@ static void prism2_clear_set_tim_queue(local_info_t *local)
|
|||||||
|
|
||||||
|
|
||||||
static struct net_device *
|
static struct net_device *
|
||||||
prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx)
|
prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx,
|
||||||
|
struct device *sdev)
|
||||||
{
|
{
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
struct hostap_interface *iface;
|
struct hostap_interface *iface;
|
||||||
@@ -3439,6 +3440,7 @@ while (0)
|
|||||||
|
|
||||||
rtnl_lock();
|
rtnl_lock();
|
||||||
ret = dev_alloc_name(dev, "wifi%d");
|
ret = dev_alloc_name(dev, "wifi%d");
|
||||||
|
SET_NETDEV_DEV(dev, sdev);
|
||||||
if (ret >= 0)
|
if (ret >= 0)
|
||||||
ret = register_netdevice(dev);
|
ret = register_netdevice(dev);
|
||||||
rtnl_unlock();
|
rtnl_unlock();
|
||||||
|
@@ -308,7 +308,8 @@ static int prism2_pci_probe(struct pci_dev *pdev,
|
|||||||
pci_set_master(pdev);
|
pci_set_master(pdev);
|
||||||
#endif /* PRISM2_BUS_MASTER */
|
#endif /* PRISM2_BUS_MASTER */
|
||||||
|
|
||||||
dev = prism2_init_local_data(&prism2_pci_funcs, cards_found);
|
dev = prism2_init_local_data(&prism2_pci_funcs, cards_found,
|
||||||
|
&pdev->dev);
|
||||||
if (dev == NULL)
|
if (dev == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
iface = netdev_priv(dev);
|
iface = netdev_priv(dev);
|
||||||
|
@@ -522,7 +522,8 @@ static int prism2_plx_probe(struct pci_dev *pdev,
|
|||||||
* not present; but are there really such cards in use(?) */
|
* not present; but are there really such cards in use(?) */
|
||||||
}
|
}
|
||||||
|
|
||||||
dev = prism2_init_local_data(&prism2_plx_funcs, cards_found);
|
dev = prism2_init_local_data(&prism2_plx_funcs, cards_found,
|
||||||
|
&pdev->dev);
|
||||||
if (dev == NULL)
|
if (dev == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
iface = netdev_priv(dev);
|
iface = netdev_priv(dev);
|
||||||
|
Reference in New Issue
Block a user