* Re: [PATCH 5/5] net: file_operations should be const
From: Samuel Ortiz @ 2009-09-02 8:55 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: David Miller, netdev, linux-wireless
In-Reply-To: <20090902052538.601908379@vyatta.com>
On Tue, 2009-09-01 at 22:25 -0700, Stephen Hemminger wrote:
> plain text document attachment (const-file-ops.patch)
> All instances of file_operations should be const.
>
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
For the IrDA parts:
Acked-by: Samuel Ortiz <samuel@sortiz.org>
>
> ---
> net/ipv6/ip6mr.c | 4 ++--
> net/irda/irnet/irnet_ppp.h | 2 +-
> net/irda/irproc.c | 14 +++++++-------
> net/key/af_key.c | 2 +-
> net/mac80211/rc80211_minstrel_debugfs.c | 2 +-
> net/mac80211/rc80211_pid_debugfs.c | 2 +-
> net/xfrm/xfrm_proc.c | 2 +-
> 7 files changed, 14 insertions(+), 14 deletions(-)
>
> --- a/net/ipv6/ip6mr.c 2009-09-01 22:06:18.049861877 -0700
> +++ b/net/ipv6/ip6mr.c 2009-09-01 22:06:45.101130517 -0700
> @@ -217,7 +217,7 @@ static int ip6mr_vif_open(struct inode *
> sizeof(struct ipmr_vif_iter));
> }
>
> -static struct file_operations ip6mr_vif_fops = {
> +static const struct file_operations ip6mr_vif_fops = {
> .owner = THIS_MODULE,
> .open = ip6mr_vif_open,
> .read = seq_read,
> @@ -341,7 +341,7 @@ static int ipmr_mfc_open(struct inode *i
> sizeof(struct ipmr_mfc_iter));
> }
>
> -static struct file_operations ip6mr_mfc_fops = {
> +static const struct file_operations ip6mr_mfc_fops = {
> .owner = THIS_MODULE,
> .open = ipmr_mfc_open,
> .read = seq_read,
> --- a/net/irda/irnet/irnet_ppp.h 2009-09-01 22:06:18.066775983 -0700
> +++ b/net/irda/irnet/irnet_ppp.h 2009-09-01 22:07:01.768232028 -0700
> @@ -95,7 +95,7 @@ static int
> /**************************** VARIABLES ****************************/
>
> /* Filesystem callbacks (to call us) */
> -static struct file_operations irnet_device_fops =
> +static const struct file_operations irnet_device_fops =
> {
> .owner = THIS_MODULE,
> .read = dev_irnet_read,
> --- a/net/irda/irproc.c 2009-09-01 22:06:18.083862409 -0700
> +++ b/net/irda/irproc.c 2009-09-01 22:07:33.742884934 -0700
> @@ -34,21 +34,21 @@
> #include <net/irda/irlap.h>
> #include <net/irda/irlmp.h>
>
> -extern struct file_operations discovery_seq_fops;
> -extern struct file_operations irlap_seq_fops;
> -extern struct file_operations irlmp_seq_fops;
> -extern struct file_operations irttp_seq_fops;
> -extern struct file_operations irias_seq_fops;
> +extern const struct file_operations discovery_seq_fops;
> +extern const struct file_operations irlap_seq_fops;
> +extern const struct file_operations irlmp_seq_fops;
> +extern const struct file_operations irttp_seq_fops;
> +extern const struct file_operations irias_seq_fops;
>
> struct irda_entry {
> const char *name;
> - struct file_operations *fops;
> + const struct file_operations *fops;
> };
>
> struct proc_dir_entry *proc_irda;
> EXPORT_SYMBOL(proc_irda);
>
> -static struct irda_entry irda_dirs[] = {
> +static const struct irda_entry irda_dirs[] = {
> {"discovery", &discovery_seq_fops},
> {"irttp", &irttp_seq_fops},
> {"irlmp", &irlmp_seq_fops},
> --- a/net/key/af_key.c 2009-09-01 22:06:18.103861872 -0700
> +++ b/net/key/af_key.c 2009-09-01 22:07:53.008956985 -0700
> @@ -3718,7 +3718,7 @@ static int pfkey_seq_open(struct inode *
> sizeof(struct seq_net_private));
> }
>
> -static struct file_operations pfkey_proc_ops = {
> +static const struct file_operations pfkey_proc_ops = {
> .open = pfkey_seq_open,
> .read = seq_read,
> .llseek = seq_lseek,
> --- a/net/mac80211/rc80211_minstrel_debugfs.c 2009-09-01 22:06:18.119862498 -0700
> +++ b/net/mac80211/rc80211_minstrel_debugfs.c 2009-09-01 22:08:22.747241542 -0700
> @@ -139,7 +139,7 @@ minstrel_stats_release(struct inode *ino
> return 0;
> }
>
> -static struct file_operations minstrel_stat_fops = {
> +static const struct file_operations minstrel_stat_fops = {
> .owner = THIS_MODULE,
> .open = minstrel_stats_open,
> .read = minstrel_stats_read,
> --- a/net/mac80211/rc80211_pid_debugfs.c 2009-09-01 22:06:18.135862300 -0700
> +++ b/net/mac80211/rc80211_pid_debugfs.c 2009-09-01 22:08:28.843245757 -0700
> @@ -198,7 +198,7 @@ static ssize_t rate_control_pid_events_r
>
> #undef RC_PID_PRINT_BUF_SIZE
>
> -static struct file_operations rc_pid_fop_events = {
> +static const struct file_operations rc_pid_fop_events = {
> .owner = THIS_MODULE,
> .read = rate_control_pid_events_read,
> .poll = rate_control_pid_events_poll,
> --- a/net/xfrm/xfrm_proc.c 2009-09-01 22:06:18.169862213 -0700
> +++ b/net/xfrm/xfrm_proc.c 2009-09-01 22:08:48.707830315 -0700
> @@ -60,7 +60,7 @@ static int xfrm_statistics_seq_open(stru
> return single_open_net(inode, file, xfrm_statistics_seq_show);
> }
>
> -static struct file_operations xfrm_statistics_seq_fops = {
> +static const struct file_operations xfrm_statistics_seq_fops = {
> .owner = THIS_MODULE,
> .open = xfrm_statistics_seq_open,
> .read = seq_read,
>
^ permalink raw reply
* [PATCH 5/5] net: file_operations should be const
From: Stephen Hemminger @ 2009-09-02 5:25 UTC (permalink / raw)
To: David Miller, Samuel Ortiz; +Cc: netdev, linux-wireless
In-Reply-To: <20090902052500.808557262@vyatta.com>
All instances of file_operations should be const.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
---
net/ipv6/ip6mr.c | 4 ++--
net/irda/irnet/irnet_ppp.h | 2 +-
net/irda/irproc.c | 14 +++++++-------
net/key/af_key.c | 2 +-
net/mac80211/rc80211_minstrel_debugfs.c | 2 +-
net/mac80211/rc80211_pid_debugfs.c | 2 +-
net/xfrm/xfrm_proc.c | 2 +-
7 files changed, 14 insertions(+), 14 deletions(-)
--- a/net/ipv6/ip6mr.c 2009-09-01 22:06:18.049861877 -0700
+++ b/net/ipv6/ip6mr.c 2009-09-01 22:06:45.101130517 -0700
@@ -217,7 +217,7 @@ static int ip6mr_vif_open(struct inode *
sizeof(struct ipmr_vif_iter));
}
-static struct file_operations ip6mr_vif_fops = {
+static const struct file_operations ip6mr_vif_fops = {
.owner = THIS_MODULE,
.open = ip6mr_vif_open,
.read = seq_read,
@@ -341,7 +341,7 @@ static int ipmr_mfc_open(struct inode *i
sizeof(struct ipmr_mfc_iter));
}
-static struct file_operations ip6mr_mfc_fops = {
+static const struct file_operations ip6mr_mfc_fops = {
.owner = THIS_MODULE,
.open = ipmr_mfc_open,
.read = seq_read,
--- a/net/irda/irnet/irnet_ppp.h 2009-09-01 22:06:18.066775983 -0700
+++ b/net/irda/irnet/irnet_ppp.h 2009-09-01 22:07:01.768232028 -0700
@@ -95,7 +95,7 @@ static int
/**************************** VARIABLES ****************************/
/* Filesystem callbacks (to call us) */
-static struct file_operations irnet_device_fops =
+static const struct file_operations irnet_device_fops =
{
.owner = THIS_MODULE,
.read = dev_irnet_read,
--- a/net/irda/irproc.c 2009-09-01 22:06:18.083862409 -0700
+++ b/net/irda/irproc.c 2009-09-01 22:07:33.742884934 -0700
@@ -34,21 +34,21 @@
#include <net/irda/irlap.h>
#include <net/irda/irlmp.h>
-extern struct file_operations discovery_seq_fops;
-extern struct file_operations irlap_seq_fops;
-extern struct file_operations irlmp_seq_fops;
-extern struct file_operations irttp_seq_fops;
-extern struct file_operations irias_seq_fops;
+extern const struct file_operations discovery_seq_fops;
+extern const struct file_operations irlap_seq_fops;
+extern const struct file_operations irlmp_seq_fops;
+extern const struct file_operations irttp_seq_fops;
+extern const struct file_operations irias_seq_fops;
struct irda_entry {
const char *name;
- struct file_operations *fops;
+ const struct file_operations *fops;
};
struct proc_dir_entry *proc_irda;
EXPORT_SYMBOL(proc_irda);
-static struct irda_entry irda_dirs[] = {
+static const struct irda_entry irda_dirs[] = {
{"discovery", &discovery_seq_fops},
{"irttp", &irttp_seq_fops},
{"irlmp", &irlmp_seq_fops},
--- a/net/key/af_key.c 2009-09-01 22:06:18.103861872 -0700
+++ b/net/key/af_key.c 2009-09-01 22:07:53.008956985 -0700
@@ -3718,7 +3718,7 @@ static int pfkey_seq_open(struct inode *
sizeof(struct seq_net_private));
}
-static struct file_operations pfkey_proc_ops = {
+static const struct file_operations pfkey_proc_ops = {
.open = pfkey_seq_open,
.read = seq_read,
.llseek = seq_lseek,
--- a/net/mac80211/rc80211_minstrel_debugfs.c 2009-09-01 22:06:18.119862498 -0700
+++ b/net/mac80211/rc80211_minstrel_debugfs.c 2009-09-01 22:08:22.747241542 -0700
@@ -139,7 +139,7 @@ minstrel_stats_release(struct inode *ino
return 0;
}
-static struct file_operations minstrel_stat_fops = {
+static const struct file_operations minstrel_stat_fops = {
.owner = THIS_MODULE,
.open = minstrel_stats_open,
.read = minstrel_stats_read,
--- a/net/mac80211/rc80211_pid_debugfs.c 2009-09-01 22:06:18.135862300 -0700
+++ b/net/mac80211/rc80211_pid_debugfs.c 2009-09-01 22:08:28.843245757 -0700
@@ -198,7 +198,7 @@ static ssize_t rate_control_pid_events_r
#undef RC_PID_PRINT_BUF_SIZE
-static struct file_operations rc_pid_fop_events = {
+static const struct file_operations rc_pid_fop_events = {
.owner = THIS_MODULE,
.read = rate_control_pid_events_read,
.poll = rate_control_pid_events_poll,
--- a/net/xfrm/xfrm_proc.c 2009-09-01 22:06:18.169862213 -0700
+++ b/net/xfrm/xfrm_proc.c 2009-09-01 22:08:48.707830315 -0700
@@ -60,7 +60,7 @@ static int xfrm_statistics_seq_open(stru
return single_open_net(inode, file, xfrm_statistics_seq_show);
}
-static struct file_operations xfrm_statistics_seq_fops = {
+static const struct file_operations xfrm_statistics_seq_fops = {
.owner = THIS_MODULE,
.open = xfrm_statistics_seq_open,
.read = seq_read,
--
^ permalink raw reply
* [PATCH 1/5] netdev: drivers should make ethtool_ops const
From: Stephen Hemminger @ 2009-09-02 5:25 UTC (permalink / raw)
To: David Miller, Roland Dreier
Cc: netdev, linux-wireless, Dhananjay Phadke, David Brownell
In-Reply-To: <20090902052500.808557262@vyatta.com>
No need to put ethtool_ops in data, they should be const.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
---
arch/um/drivers/net_kern.c | 2 +-
drivers/firewire/net.c | 2 +-
drivers/ieee1394/eth1394.c | 2 +-
drivers/infiniband/hw/nes/nes_nic.c | 2 +-
drivers/net/arm/ep93xx_eth.c | 2 +-
drivers/net/arm/ixp4xx_eth.c | 2 +-
drivers/net/arm/ks8695net.c | 2 +-
drivers/net/atl1c/atl1c_ethtool.c | 2 +-
drivers/net/atl1e/atl1e_ethtool.c | 2 +-
drivers/net/atlx/atl2.c | 2 +-
drivers/net/benet/be.h | 2 +-
drivers/net/benet/be_ethtool.c | 2 +-
drivers/net/bfin_mac.c | 2 +-
drivers/net/bnx2x_main.c | 2 +-
drivers/net/enic/enic_main.c | 2 +-
drivers/net/igb/igb_ethtool.c | 2 +-
drivers/net/ipg.c | 2 +-
drivers/net/korina.c | 2 +-
drivers/net/ks8842.c | 2 +-
drivers/net/macb.c | 2 +-
drivers/net/netxen/netxen_nic.h | 2 +-
drivers/net/netxen/netxen_nic_ethtool.c | 2 +-
drivers/net/ps3_gelic_net.c | 2 +-
drivers/net/ps3_gelic_wireless.c | 2 +-
drivers/net/sfc/ethtool.c | 2 +-
drivers/net/tehuti.c | 2 +-
drivers/net/usb/asix.c | 4 ++--
drivers/net/usb/catc.c | 2 +-
drivers/net/usb/dm9601.c | 2 +-
drivers/net/usb/hso.c | 2 +-
drivers/net/usb/kaweth.c | 2 +-
drivers/net/usb/mcs7830.c | 2 +-
drivers/net/usb/pegasus.c | 2 +-
drivers/net/usb/rtl8150.c | 2 +-
drivers/net/usb/smsc95xx.c | 2 +-
drivers/net/usb/usbnet.c | 2 +-
drivers/net/veth.c | 2 +-
drivers/net/virtio_net.c | 2 +-
drivers/net/wireless/libertas/dev.h | 2 +-
drivers/net/wireless/libertas/ethtool.c | 2 +-
drivers/net/xen-netfront.c | 4 ++--
drivers/s390/net/qeth_l2_main.c | 4 ++--
drivers/s390/net/qeth_l3_main.c | 2 +-
drivers/staging/at76_usb/at76_usb.c | 2 +-
drivers/staging/octeon/ethernet-mdio.c | 2 +-
drivers/staging/octeon/ethernet-mdio.h | 2 +-
drivers/staging/sxg/sxg.h | 2 +-
drivers/staging/sxg/sxg_ethtool.c | 2 +-
drivers/usb/gadget/u_ether.c | 2 +-
49 files changed, 52 insertions(+), 52 deletions(-)
--- a/arch/um/drivers/net_kern.c 2009-09-01 21:23:22.140759558 -0700
+++ b/arch/um/drivers/net_kern.c 2009-09-01 21:24:04.767783955 -0700
@@ -285,7 +285,7 @@ static void uml_net_get_drvinfo(struct n
strcpy(info->version, "42");
}
-static struct ethtool_ops uml_net_ethtool_ops = {
+static const struct ethtool_ops uml_net_ethtool_ops = {
.get_drvinfo = uml_net_get_drvinfo,
.get_link = ethtool_op_get_link,
};
--- a/drivers/firewire/net.c 2009-09-01 21:23:22.192204648 -0700
+++ b/drivers/firewire/net.c 2009-09-01 21:24:12.452795687 -0700
@@ -1342,7 +1342,7 @@ static void fwnet_get_drvinfo(struct net
strcpy(info->bus_info, "ieee1394");
}
-static struct ethtool_ops fwnet_ethtool_ops = {
+static const struct ethtool_ops fwnet_ethtool_ops = {
.get_drvinfo = fwnet_get_drvinfo,
};
--- a/drivers/ieee1394/eth1394.c 2009-09-01 21:23:22.225179879 -0700
+++ b/drivers/ieee1394/eth1394.c 2009-09-01 21:24:19.511858188 -0700
@@ -173,7 +173,7 @@ static netdev_tx_t ether1394_tx(struct s
struct net_device *dev);
static void ether1394_iso(struct hpsb_iso *iso);
-static struct ethtool_ops ethtool_ops;
+static const struct ethtool_ops ethtool_ops;
static int ether1394_write(struct hpsb_host *host, int srcid, int destid,
quadlet_t *data, u64 addr, size_t len, u16 flags);
--- a/drivers/infiniband/hw/nes/nes_nic.c 2009-09-01 21:23:22.274178784 -0700
+++ b/drivers/infiniband/hw/nes/nes_nic.c 2009-09-01 21:24:33.351892895 -0700
@@ -1508,7 +1508,7 @@ static int nes_netdev_set_settings(struc
}
-static struct ethtool_ops nes_ethtool_ops = {
+static const struct ethtool_ops nes_ethtool_ops = {
.get_link = ethtool_op_get_link,
.get_settings = nes_netdev_get_settings,
.set_settings = nes_netdev_set_settings,
--- a/drivers/net/arm/ep93xx_eth.c 2009-09-01 21:23:22.305179810 -0700
+++ b/drivers/net/arm/ep93xx_eth.c 2009-09-01 21:24:39.380961916 -0700
@@ -762,7 +762,7 @@ static u32 ep93xx_get_link(struct net_de
return mii_link_ok(&ep->mii);
}
-static struct ethtool_ops ep93xx_ethtool_ops = {
+static const struct ethtool_ops ep93xx_ethtool_ops = {
.get_drvinfo = ep93xx_get_drvinfo,
.get_settings = ep93xx_get_settings,
.set_settings = ep93xx_set_settings,
--- a/drivers/net/arm/ixp4xx_eth.c 2009-09-01 21:23:22.336175120 -0700
+++ b/drivers/net/arm/ixp4xx_eth.c 2009-09-01 21:24:45.928279805 -0700
@@ -802,7 +802,7 @@ static int ixp4xx_nway_reset(struct net_
return phy_start_aneg(port->phydev);
}
-static struct ethtool_ops ixp4xx_ethtool_ops = {
+static const struct ethtool_ops ixp4xx_ethtool_ops = {
.get_drvinfo = ixp4xx_get_drvinfo,
.get_settings = ixp4xx_get_settings,
.set_settings = ixp4xx_set_settings,
--- a/drivers/net/arm/ks8695net.c 2009-09-01 21:23:22.367175272 -0700
+++ b/drivers/net/arm/ks8695net.c 2009-09-01 21:24:51.848932190 -0700
@@ -1063,7 +1063,7 @@ ks8695_get_drvinfo(struct net_device *nd
sizeof(info->bus_info));
}
-static struct ethtool_ops ks8695_ethtool_ops = {
+static const struct ethtool_ops ks8695_ethtool_ops = {
.get_msglevel = ks8695_get_msglevel,
.set_msglevel = ks8695_set_msglevel,
.get_settings = ks8695_get_settings,
--- a/drivers/net/atl1c/atl1c_ethtool.c 2009-09-01 21:23:22.398179343 -0700
+++ b/drivers/net/atl1c/atl1c_ethtool.c 2009-09-01 21:24:58.264953214 -0700
@@ -294,7 +294,7 @@ static int atl1c_nway_reset(struct net_d
return 0;
}
-static struct ethtool_ops atl1c_ethtool_ops = {
+static const struct ethtool_ops atl1c_ethtool_ops = {
.get_settings = atl1c_get_settings,
.set_settings = atl1c_set_settings,
.get_drvinfo = atl1c_get_drvinfo,
--- a/drivers/net/atl1e/atl1e_ethtool.c 2009-09-01 21:23:22.429737472 -0700
+++ b/drivers/net/atl1e/atl1e_ethtool.c 2009-09-01 21:25:06.161739683 -0700
@@ -378,7 +378,7 @@ static int atl1e_nway_reset(struct net_d
return 0;
}
-static struct ethtool_ops atl1e_ethtool_ops = {
+static const struct ethtool_ops atl1e_ethtool_ops = {
.get_settings = atl1e_get_settings,
.set_settings = atl1e_set_settings,
.get_drvinfo = atl1e_get_drvinfo,
--- a/drivers/net/atlx/atl2.c 2009-09-01 21:23:22.461737471 -0700
+++ b/drivers/net/atlx/atl2.c 2009-09-01 21:25:29.371737969 -0700
@@ -2094,7 +2094,7 @@ static int atl2_nway_reset(struct net_de
return 0;
}
-static struct ethtool_ops atl2_ethtool_ops = {
+static const struct ethtool_ops atl2_ethtool_ops = {
.get_settings = atl2_get_settings,
.set_settings = atl2_set_settings,
.get_drvinfo = atl2_get_drvinfo,
--- a/drivers/net/benet/be.h 2009-09-01 21:23:22.493739757 -0700
+++ b/drivers/net/benet/be.h 2009-09-01 21:25:44.899803221 -0700
@@ -259,7 +259,7 @@ struct be_adapter {
bool promiscuous;
};
-extern struct ethtool_ops be_ethtool_ops;
+extern const struct ethtool_ops be_ethtool_ops;
#define drvr_stats(adapter) (&adapter->stats.drvr_stats)
--- a/drivers/net/benet/be_ethtool.c 2009-09-01 21:23:22.524737107 -0700
+++ b/drivers/net/benet/be_ethtool.c 2009-09-01 21:25:53.630800706 -0700
@@ -332,7 +332,7 @@ be_set_pauseparam(struct net_device *net
return status;
}
-struct ethtool_ops be_ethtool_ops = {
+const struct ethtool_ops be_ethtool_ops = {
.get_settings = be_get_settings,
.get_drvinfo = be_get_drvinfo,
.get_link = ethtool_op_get_link,
--- a/drivers/net/bfin_mac.c 2009-09-01 21:23:22.555737483 -0700
+++ b/drivers/net/bfin_mac.c 2009-09-01 21:26:00.102325056 -0700
@@ -491,7 +491,7 @@ static void bfin_mac_ethtool_getdrvinfo(
strcpy(info->bus_info, dev_name(&dev->dev));
}
-static struct ethtool_ops bfin_mac_ethtool_ops = {
+static const struct ethtool_ops bfin_mac_ethtool_ops = {
.get_settings = bfin_mac_ethtool_getsettings,
.set_settings = bfin_mac_ethtool_setsettings,
.get_link = ethtool_op_get_link,
--- a/drivers/net/bnx2x_main.c 2009-09-01 21:23:22.587737636 -0700
+++ b/drivers/net/bnx2x_main.c 2009-09-01 21:26:08.591759739 -0700
@@ -10606,7 +10606,7 @@ static int bnx2x_phys_id(struct net_devi
return 0;
}
-static struct ethtool_ops bnx2x_ethtool_ops = {
+static const struct ethtool_ops bnx2x_ethtool_ops = {
.get_settings = bnx2x_get_settings,
.set_settings = bnx2x_set_settings,
.get_drvinfo = bnx2x_get_drvinfo,
--- a/drivers/net/enic/enic_main.c 2009-09-01 21:23:22.618737189 -0700
+++ b/drivers/net/enic/enic_main.c 2009-09-01 21:26:14.917742055 -0700
@@ -256,7 +256,7 @@ static void enic_set_msglevel(struct net
enic->msg_enable = value;
}
-static struct ethtool_ops enic_ethtool_ops = {
+static const struct ethtool_ops enic_ethtool_ops = {
.get_settings = enic_get_settings,
.get_drvinfo = enic_get_drvinfo,
.get_msglevel = enic_get_msglevel,
--- a/drivers/net/igb/igb_ethtool.c 2009-09-01 21:23:22.650737465 -0700
+++ b/drivers/net/igb/igb_ethtool.c 2009-09-01 21:26:20.874754655 -0700
@@ -2016,7 +2016,7 @@ static void igb_get_strings(struct net_d
}
}
-static struct ethtool_ops igb_ethtool_ops = {
+static const struct ethtool_ops igb_ethtool_ops = {
.get_settings = igb_get_settings,
.set_settings = igb_set_settings,
.get_drvinfo = igb_get_drvinfo,
--- a/drivers/net/ipg.c 2009-09-01 21:23:22.713737071 -0700
+++ b/drivers/net/ipg.c 2009-09-01 21:26:30.551740998 -0700
@@ -2186,7 +2186,7 @@ static int ipg_nway_reset(struct net_dev
return rc;
}
-static struct ethtool_ops ipg_ethtool_ops = {
+static const struct ethtool_ops ipg_ethtool_ops = {
.get_settings = ipg_get_settings,
.set_settings = ipg_set_settings,
.nway_reset = ipg_nway_reset,
--- a/drivers/net/korina.c 2009-09-01 21:23:22.745739152 -0700
+++ b/drivers/net/korina.c 2009-09-01 21:26:36.337830745 -0700
@@ -743,7 +743,7 @@ static u32 netdev_get_link(struct net_de
return mii_link_ok(&lp->mii_if);
}
-static struct ethtool_ops netdev_ethtool_ops = {
+static const struct ethtool_ops netdev_ethtool_ops = {
.get_drvinfo = netdev_get_drvinfo,
.get_settings = netdev_get_settings,
.set_settings = netdev_set_settings,
--- a/drivers/net/ks8842.c 2009-09-01 21:23:22.776738076 -0700
+++ b/drivers/net/ks8842.c 2009-09-01 21:26:42.541748592 -0700
@@ -619,7 +619,7 @@ static const struct net_device_ops ks884
.ndo_validate_addr = eth_validate_addr
};
-static struct ethtool_ops ks8842_ethtool_ops = {
+static const struct ethtool_ops ks8842_ethtool_ops = {
.get_link = ethtool_op_get_link,
};
--- a/drivers/net/macb.c 2009-09-01 21:23:22.812112323 -0700
+++ b/drivers/net/macb.c 2009-09-01 21:26:47.647878323 -0700
@@ -1079,7 +1079,7 @@ static void macb_get_drvinfo(struct net_
strcpy(info->bus_info, dev_name(&bp->pdev->dev));
}
-static struct ethtool_ops macb_ethtool_ops = {
+static const struct ethtool_ops macb_ethtool_ops = {
.get_settings = macb_get_settings,
.set_settings = macb_set_settings,
.get_drvinfo = macb_get_drvinfo,
--- a/drivers/net/netxen/netxen_nic.h 2009-09-01 21:23:22.844098830 -0700
+++ b/drivers/net/netxen/netxen_nic.h 2009-09-01 21:26:54.259228132 -0700
@@ -1410,6 +1410,6 @@ extern void netxen_change_ringparam(stru
extern int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr,
int *valp);
-extern struct ethtool_ops netxen_nic_ethtool_ops;
+extern const struct ethtool_ops netxen_nic_ethtool_ops;
#endif /* __NETXEN_NIC_H_ */
--- a/drivers/net/netxen/netxen_nic_ethtool.c 2009-09-01 21:23:22.877777568 -0700
+++ b/drivers/net/netxen/netxen_nic_ethtool.c 2009-09-01 21:27:01.074946492 -0700
@@ -963,7 +963,7 @@ static int netxen_nic_set_flags(struct n
return 0;
}
-struct ethtool_ops netxen_nic_ethtool_ops = {
+const struct ethtool_ops netxen_nic_ethtool_ops = {
.get_settings = netxen_nic_get_settings,
.set_settings = netxen_nic_set_settings,
.get_drvinfo = netxen_nic_get_drvinfo,
--- a/drivers/net/ps3_gelic_net.c 2009-09-01 21:23:22.909740667 -0700
+++ b/drivers/net/ps3_gelic_net.c 2009-09-01 21:27:08.779740619 -0700
@@ -1346,7 +1346,7 @@ done:
return status;
}
-static struct ethtool_ops gelic_ether_ethtool_ops = {
+static const struct ethtool_ops gelic_ether_ethtool_ops = {
.get_drvinfo = gelic_net_get_drvinfo,
.get_settings = gelic_ether_get_settings,
.get_link = ethtool_op_get_link,
--- a/drivers/net/ps3_gelic_wireless.c 2009-09-01 21:23:22.943207129 -0700
+++ b/drivers/net/ps3_gelic_wireless.c 2009-09-01 21:27:22.891080433 -0700
@@ -2714,7 +2714,7 @@ static const struct net_device_ops gelic
#endif
};
-static struct ethtool_ops gelic_wl_ethtool_ops = {
+static const struct ethtool_ops gelic_wl_ethtool_ops = {
.get_drvinfo = gelic_net_get_drvinfo,
.get_link = gelic_wl_get_link,
.get_tx_csum = ethtool_op_get_tx_csum,
--- a/drivers/net/sfc/ethtool.c 2009-09-01 21:23:22.975775116 -0700
+++ b/drivers/net/sfc/ethtool.c 2009-09-01 21:27:31.123840332 -0700
@@ -731,7 +731,7 @@ static void efx_ethtool_get_pauseparam(s
}
-struct ethtool_ops efx_ethtool_ops = {
+const struct ethtool_ops efx_ethtool_ops = {
.get_settings = efx_ethtool_get_settings,
.set_settings = efx_ethtool_set_settings,
.get_drvinfo = efx_ethtool_get_drvinfo,
--- a/drivers/net/tehuti.c 2009-09-01 21:23:23.042174817 -0700
+++ b/drivers/net/tehuti.c 2009-09-01 21:27:52.563962512 -0700
@@ -2428,7 +2428,7 @@ static void bdx_get_ethtool_stats(struct
*/
static void bdx_ethtool_ops(struct net_device *netdev)
{
- static struct ethtool_ops bdx_ethtool_ops = {
+ static const struct ethtool_ops bdx_ethtool_ops = {
.get_settings = bdx_get_settings,
.get_drvinfo = bdx_get_drvinfo,
.get_link = ethtool_op_get_link,
--- a/drivers/net/usb/asix.c 2009-09-01 21:23:23.075778923 -0700
+++ b/drivers/net/usb/asix.c 2009-09-01 21:28:10.900360956 -0700
@@ -731,7 +731,7 @@ static int asix_ioctl (struct net_device
/* We need to override some ethtool_ops so we require our
own structure so we don't interfere with other usbnet
devices that may be connected at the same time. */
-static struct ethtool_ops ax88172_ethtool_ops = {
+static const struct ethtool_ops ax88172_ethtool_ops = {
.get_drvinfo = asix_get_drvinfo,
.get_link = asix_get_link,
.get_msglevel = usbnet_get_msglevel,
@@ -873,7 +873,7 @@ out:
return ret;
}
-static struct ethtool_ops ax88772_ethtool_ops = {
+static const struct ethtool_ops ax88772_ethtool_ops = {
.get_drvinfo = asix_get_drvinfo,
.get_link = asix_get_link,
.get_msglevel = usbnet_get_msglevel,
--- a/drivers/net/usb/catc.c 2009-09-01 21:23:23.142740822 -0700
+++ b/drivers/net/usb/catc.c 2009-09-01 21:28:23.187998866 -0700
@@ -698,7 +698,7 @@ static int catc_get_settings(struct net_
return 0;
}
-static struct ethtool_ops ops = {
+static const struct ethtool_ops ops = {
.get_drvinfo = catc_get_drvinfo,
.get_settings = catc_get_settings,
.get_link = ethtool_op_get_link
--- a/drivers/net/usb/dm9601.c 2009-09-01 21:23:23.174779035 -0700
+++ b/drivers/net/usb/dm9601.c 2009-09-01 21:28:27.970768780 -0700
@@ -356,7 +356,7 @@ static int dm9601_ioctl(struct net_devic
return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
}
-static struct ethtool_ops dm9601_ethtool_ops = {
+static const struct ethtool_ops dm9601_ethtool_ops = {
.get_drvinfo = dm9601_get_drvinfo,
.get_link = dm9601_get_link,
.get_msglevel = usbnet_get_msglevel,
--- a/drivers/net/usb/hso.c 2009-09-01 21:23:23.206924285 -0700
+++ b/drivers/net/usb/hso.c 2009-09-01 21:28:32.857738210 -0700
@@ -829,7 +829,7 @@ static void hso_get_drvinfo(struct net_d
usb_make_path(odev->parent->usb, info->bus_info, sizeof info->bus_info);
}
-static struct ethtool_ops ops = {
+static const struct ethtool_ops ops = {
.get_drvinfo = hso_get_drvinfo,
.get_link = ethtool_op_get_link
};
--- a/drivers/net/usb/kaweth.c 2009-09-01 21:23:23.240799685 -0700
+++ b/drivers/net/usb/kaweth.c 2009-09-01 21:28:37.504884609 -0700
@@ -778,7 +778,7 @@ static u32 kaweth_get_link(struct net_de
return kaweth->linkstate;
}
-static struct ethtool_ops ops = {
+static const struct ethtool_ops ops = {
.get_drvinfo = kaweth_get_drvinfo,
.get_link = kaweth_get_link
};
--- a/drivers/net/usb/mcs7830.c 2009-09-01 21:23:23.272740317 -0700
+++ b/drivers/net/usb/mcs7830.c 2009-09-01 21:28:42.591361634 -0700
@@ -449,7 +449,7 @@ static void mcs7830_get_regs(struct net_
mcs7830_get_reg(dev, 0, regs->len, data);
}
-static struct ethtool_ops mcs7830_ethtool_ops = {
+static const struct ethtool_ops mcs7830_ethtool_ops = {
.get_drvinfo = mcs7830_get_drvinfo,
.get_regs_len = mcs7830_get_regs_len,
.get_regs = mcs7830_get_regs,
--- a/drivers/net/usb/pegasus.c 2009-09-01 21:23:23.305799714 -0700
+++ b/drivers/net/usb/pegasus.c 2009-09-01 21:28:51.980749292 -0700
@@ -1174,7 +1174,7 @@ static void pegasus_set_msglevel(struct
pegasus->msg_enable = v;
}
-static struct ethtool_ops ops = {
+static const struct ethtool_ops ops = {
.get_drvinfo = pegasus_get_drvinfo,
.get_settings = pegasus_get_settings,
.set_settings = pegasus_set_settings,
--- a/drivers/net/usb/rtl8150.c 2009-09-01 21:23:23.337740661 -0700
+++ b/drivers/net/usb/rtl8150.c 2009-09-01 21:28:56.895273704 -0700
@@ -865,7 +865,7 @@ static int rtl8150_get_settings(struct n
return 0;
}
-static struct ethtool_ops ops = {
+static const struct ethtool_ops ops = {
.get_drvinfo = rtl8150_get_drvinfo,
.get_settings = rtl8150_get_settings,
.get_link = ethtool_op_get_link
--- a/drivers/net/usb/smsc95xx.c 2009-09-01 21:23:23.369801502 -0700
+++ b/drivers/net/usb/smsc95xx.c 2009-09-01 21:29:00.964124094 -0700
@@ -625,7 +625,7 @@ static int smsc95xx_ethtool_set_tx_csum(
return smsc95xx_set_csums(dev);
}
-static struct ethtool_ops smsc95xx_ethtool_ops = {
+static const struct ethtool_ops smsc95xx_ethtool_ops = {
.get_link = usbnet_get_link,
.nway_reset = usbnet_nway_reset,
.get_drvinfo = usbnet_get_drvinfo,
--- a/drivers/net/usb/usbnet.c 2009-09-01 21:23:23.401801199 -0700
+++ b/drivers/net/usb/usbnet.c 2009-09-01 21:29:08.106772310 -0700
@@ -854,7 +854,7 @@ void usbnet_set_msglevel (struct net_dev
EXPORT_SYMBOL_GPL(usbnet_set_msglevel);
/* drivers may override default ethtool_ops in their bind() routine */
-static struct ethtool_ops usbnet_ethtool_ops = {
+static const struct ethtool_ops usbnet_ethtool_ops = {
.get_settings = usbnet_get_settings,
.set_settings = usbnet_set_settings,
.get_link = usbnet_get_link,
--- a/drivers/net/veth.c 2009-09-01 21:23:23.433800886 -0700
+++ b/drivers/net/veth.c 2009-09-01 21:29:12.191020944 -0700
@@ -129,7 +129,7 @@ static int veth_set_tx_csum(struct net_d
return 0;
}
-static struct ethtool_ops veth_ethtool_ops = {
+static const struct ethtool_ops veth_ethtool_ops = {
.get_settings = veth_get_settings,
.get_drvinfo = veth_get_drvinfo,
.get_link = ethtool_op_get_link,
--- a/drivers/net/virtio_net.c 2009-09-01 21:23:23.465800230 -0700
+++ b/drivers/net/virtio_net.c 2009-09-01 21:29:16.754013613 -0700
@@ -798,7 +798,7 @@ static void virtnet_vlan_rx_kill_vid(str
dev_warn(&dev->dev, "Failed to kill VLAN ID %d.\n", vid);
}
-static struct ethtool_ops virtnet_ethtool_ops = {
+static const struct ethtool_ops virtnet_ethtool_ops = {
.set_tx_csum = virtnet_set_tx_csum,
.set_sg = ethtool_op_set_sg,
.set_tso = ethtool_op_set_tso,
--- a/drivers/net/wireless/libertas/dev.h 2009-09-01 21:23:23.499800950 -0700
+++ b/drivers/net/wireless/libertas/dev.h 2009-09-01 21:29:21.529757543 -0700
@@ -14,7 +14,7 @@
#include "defs.h"
#include "hostcmd.h"
-extern struct ethtool_ops lbs_ethtool_ops;
+extern const struct ethtool_ops lbs_ethtool_ops;
#define MAX_BSSID_PER_CHANNEL 16
--- a/drivers/net/wireless/libertas/ethtool.c 2009-09-01 21:23:23.532780220 -0700
+++ b/drivers/net/wireless/libertas/ethtool.c 2009-09-01 21:29:28.396212516 -0700
@@ -183,7 +183,7 @@ static int lbs_ethtool_set_wol(struct ne
return lbs_host_sleep_cfg(priv, criteria, (struct wol_config *)NULL);
}
-struct ethtool_ops lbs_ethtool_ops = {
+const struct ethtool_ops lbs_ethtool_ops = {
.get_drvinfo = lbs_ethtool_get_drvinfo,
.get_eeprom = lbs_ethtool_get_eeprom,
.get_eeprom_len = lbs_ethtool_get_eeprom_len,
--- a/drivers/net/xen-netfront.c 2009-09-01 21:23:23.565740506 -0700
+++ b/drivers/net/xen-netfront.c 2009-09-01 21:29:39.899887569 -0700
@@ -51,7 +51,7 @@
#include <xen/interface/memory.h>
#include <xen/interface/grant_table.h>
-static struct ethtool_ops xennet_ethtool_ops;
+static const struct ethtool_ops xennet_ethtool_ops;
struct netfront_cb {
struct page *page;
@@ -1627,7 +1627,7 @@ static void backend_changed(struct xenbu
}
}
-static struct ethtool_ops xennet_ethtool_ops =
+static const struct ethtool_ops xennet_ethtool_ops =
{
.set_tx_csum = ethtool_op_set_tx_csum,
.set_sg = xennet_set_sg,
--- a/drivers/s390/net/qeth_l2_main.c 2009-09-01 21:23:23.614740730 -0700
+++ b/drivers/s390/net/qeth_l2_main.c 2009-09-01 21:29:48.813744958 -0700
@@ -863,7 +863,7 @@ static void qeth_l2_remove_device(struct
return;
}
-static struct ethtool_ops qeth_l2_ethtool_ops = {
+static const struct ethtool_ops qeth_l2_ethtool_ops = {
.get_link = ethtool_op_get_link,
.get_strings = qeth_core_get_strings,
.get_ethtool_stats = qeth_core_get_ethtool_stats,
@@ -872,7 +872,7 @@ static struct ethtool_ops qeth_l2_ethtoo
.get_settings = qeth_core_ethtool_get_settings,
};
-static struct ethtool_ops qeth_l2_osn_ops = {
+static const struct ethtool_ops qeth_l2_osn_ops = {
.get_strings = qeth_core_get_strings,
.get_ethtool_stats = qeth_core_get_ethtool_stats,
.get_stats_count = qeth_core_get_stats_count,
--- a/drivers/s390/net/qeth_l3_main.c 2009-09-01 21:23:23.665740346 -0700
+++ b/drivers/s390/net/qeth_l3_main.c 2009-09-01 21:29:58.282953727 -0700
@@ -2946,7 +2946,7 @@ static int qeth_l3_ethtool_set_tso(struc
return 0;
}
-static struct ethtool_ops qeth_l3_ethtool_ops = {
+static const struct ethtool_ops qeth_l3_ethtool_ops = {
.get_link = ethtool_op_get_link,
.get_tx_csum = ethtool_op_get_tx_csum,
.set_tx_csum = ethtool_op_set_tx_hw_csum,
--- a/drivers/staging/at76_usb/at76_usb.c 2009-09-01 21:23:23.729799604 -0700
+++ b/drivers/staging/at76_usb/at76_usb.c 2009-09-01 21:30:08.712050545 -0700
@@ -3396,7 +3396,7 @@ static u32 at76_ethtool_get_link(struct
return priv->mac_state == MAC_CONNECTED;
}
-static struct ethtool_ops at76_ethtool_ops = {
+static const struct ethtool_ops at76_ethtool_ops = {
.get_drvinfo = at76_ethtool_get_drvinfo,
.get_link = at76_ethtool_get_link,
};
--- a/drivers/staging/octeon/ethernet-mdio.c 2009-09-01 21:23:23.762799959 -0700
+++ b/drivers/staging/octeon/ethernet-mdio.c 2009-09-01 21:30:12.140749658 -0700
@@ -170,7 +170,7 @@ static u32 cvm_oct_get_link(struct net_d
return ret;
}
-struct ethtool_ops cvm_oct_ethtool_ops = {
+struct const ethtool_ops cvm_oct_ethtool_ops = {
.get_drvinfo = cvm_oct_get_drvinfo,
.get_settings = cvm_oct_get_settings,
.set_settings = cvm_oct_set_settings,
--- a/drivers/staging/octeon/ethernet-mdio.h 2009-09-01 21:23:23.794740804 -0700
+++ b/drivers/staging/octeon/ethernet-mdio.h 2009-09-01 21:30:16.177000766 -0700
@@ -41,6 +41,6 @@
#include <net/xfrm.h>
#endif /* CONFIG_XFRM */
-extern struct ethtool_ops cvm_oct_ethtool_ops;
+extern const struct ethtool_ops cvm_oct_ethtool_ops;
int cvm_oct_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
int cvm_oct_mdio_setup_device(struct net_device *dev);
--- a/drivers/staging/sxg/sxg.h 2009-09-01 21:23:23.826800190 -0700
+++ b/drivers/staging/sxg/sxg.h 2009-09-01 21:30:21.450752540 -0700
@@ -782,6 +782,6 @@ struct slic_crash_info {
#define SIOCSLICSETINTAGG (SIOCDEVPRIVATE+10)
#define SIOCSLICTRACEDUMP (SIOCDEVPRIVATE+11)
-extern struct ethtool_ops sxg_nic_ethtool_ops;
+extern const struct ethtool_ops sxg_nic_ethtool_ops;
#define SXG_COMPLETE_SLOW_SEND_LIMIT 128
#endif /* __SXG_DRIVER_H__ */
--- a/drivers/staging/sxg/sxg_ethtool.c 2009-09-01 21:23:23.858740712 -0700
+++ b/drivers/staging/sxg/sxg_ethtool.c 2009-09-01 21:30:27.490902621 -0700
@@ -300,7 +300,7 @@ static int sxg_nic_get_eeprom(struct net
return 0;
}
-struct ethtool_ops sxg_nic_ethtool_ops = {
+const struct ethtool_ops sxg_nic_ethtool_ops = {
.get_settings = sxg_nic_get_settings,
.set_settings = sxg_nic_set_settings,
.get_drvinfo = sxg_nic_get_drvinfo,
--- a/drivers/usb/gadget/u_ether.c 2009-09-01 21:23:23.890775071 -0700
+++ b/drivers/usb/gadget/u_ether.c 2009-09-01 21:30:36.693948879 -0700
@@ -181,7 +181,7 @@ static void eth_get_drvinfo(struct net_d
* - ... probably more ethtool ops
*/
-static struct ethtool_ops ops = {
+static const struct ethtool_ops ops = {
.get_drvinfo = eth_get_drvinfo,
.get_link = ethtool_op_get_link,
};
--
^ permalink raw reply
* [PATCH] cfg80211: fix looping soft lockup in find_ie()
From: Bob Copeland @ 2009-09-01 22:12 UTC (permalink / raw)
To: linville, johannes; +Cc: linux-wireless, Bob Copeland, stable
The find_ie() function uses a size_t for the len parameter, and
directly uses len as a loop variable. If any received packets
are malformed, it is possible for the decrease of len to overflow,
and since the result is unsigned, the loop will not terminate.
Change it to a signed int so the loop conditional works for
negative values.
This fixes the following soft lockup:
[38573.102007] BUG: soft lockup - CPU#0 stuck for 61s! [phy0:2230]
[38573.102007] Modules linked in: aes_i586 aes_generic fuse af_packet ipt_REJECT xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state iptable_filter ip_tables x_tables acpi_cpufreq binfmt_misc dm_mirror dm_region_hash dm_log dm_multipath dm_mod kvm_intel kvm uinput i915 arc4 ecb drm snd_hda_codec_idt ath5k snd_hda_intel hid_apple mac80211 usbhid appletouch snd_hda_codec snd_pcm ath cfg80211 snd_timer i2c_algo_bit ohci1394 video snd processor ieee1394 rfkill ehci_hcd sg sky2 backlight snd_page_alloc uhci_hcd joydev output ac thermal button battery sr_mod applesmc cdrom input_polldev evdev unix [last unloaded: scsi_wait_scan]
[38573.102007] irq event stamp: 2547724535
[38573.102007] hardirqs last enabled at (2547724534): [<c1002ffc>] restore_all_notrace+0x0/0x18
[38573.102007] hardirqs last disabled at (2547724535): [<c10038f4>] apic_timer_interrupt+0x28/0x34
[38573.102007] softirqs last enabled at (92950144): [<c103ab48>] __do_softirq+0x108/0x210
[38573.102007] softirqs last disabled at (92950274): [<c1348e74>] _spin_lock_bh+0x14/0x80
[38573.102007]
[38573.102007] Pid: 2230, comm: phy0 Tainted: G W (2.6.31-rc7-wl #8) MacBook1,1
[38573.102007] EIP: 0060:[<f8ea2d50>] EFLAGS: 00010292 CPU: 0
[38573.102007] EIP is at cmp_ies+0x30/0x180 [cfg80211]
[38573.102007] EAX: 00000082 EBX: 00000000 ECX: ffffffc1 EDX: d8efd014
[38573.102007] ESI: ffffff7c EDI: 0000004d EBP: eee2dc50 ESP: eee2dc3c
[38573.102007] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[38573.102007] CR0: 8005003b CR2: d8efd014 CR3: 01694000 CR4: 000026d0
[38573.102007] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[38573.102007] DR6: ffff0ff0 DR7: 00000400
[38573.102007] Call Trace:
[38573.102007] [<f8ea2f8d>] cmp_bss+0xed/0x100 [cfg80211]
[38573.102007] [<f8ea33e4>] cfg80211_bss_update+0x84/0x410 [cfg80211]
[38573.102007] [<f8ea3884>] cfg80211_inform_bss_frame+0x114/0x180 [cfg80211]
[38573.102007] [<f97255ff>] ieee80211_bss_info_update+0x4f/0x180 [mac80211]
[38573.102007] [<f972b118>] ieee80211_rx_bss_info+0x88/0xf0 [mac80211]
[38573.102007] [<f9739297>] ? ieee802_11_parse_elems+0x27/0x30 [mac80211]
[38573.102007] [<f972b224>] ieee80211_rx_mgmt_probe_resp+0xa4/0x1c0 [mac80211]
[38573.102007] [<f972bc59>] ieee80211_sta_rx_queued_mgmt+0x919/0xc50 [mac80211]
[38573.102007] [<c1009707>] ? sched_clock+0x27/0xa0
[38573.102007] [<c1009707>] ? sched_clock+0x27/0xa0
[38573.102007] [<c105ffd0>] ? mark_held_locks+0x60/0x80
[38573.102007] [<c1348be5>] ? _spin_unlock_irqrestore+0x55/0x70
[38573.102007] [<c134baa5>] ? sub_preempt_count+0x85/0xc0
[38573.102007] [<c1348bce>] ? _spin_unlock_irqrestore+0x3e/0x70
[38573.102007] [<c12c1c0f>] ? skb_dequeue+0x4f/0x70
[38573.102007] [<f972c021>] ieee80211_sta_work+0x91/0xb80 [mac80211]
[38573.102007] [<c1009707>] ? sched_clock+0x27/0xa0
[38573.102007] [<c134baa5>] ? sub_preempt_count+0x85/0xc0
[38573.102007] [<c10479af>] worker_thread+0x18f/0x320
[38573.102007] [<c104794e>] ? worker_thread+0x12e/0x320
[38573.102007] [<c1348be5>] ? _spin_unlock_irqrestore+0x55/0x70
[38573.102007] [<f972bf90>] ? ieee80211_sta_work+0x0/0xb80 [mac80211]
[38573.102007] [<c104cbb0>] ? autoremove_wake_function+0x0/0x50
[38573.102007] [<c1047820>] ? worker_thread+0x0/0x320
[38573.102007] [<c104c854>] kthread+0x84/0x90
[38573.102007] [<c104c7d0>] ? kthread+0x0/0x90
[38573.102007] [<c1003ab7>] kernel_thread_helper+0x7/0x10
Cc: stable@kernel.org
Signed-off-by: Bob Copeland <me@bobcopeland.com>
---
net/wireless/scan.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 7043de6..19c5a9a 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -141,7 +141,7 @@ void cfg80211_bss_expire(struct cfg80211_registered_device *dev)
dev->bss_generation++;
}
-static u8 *find_ie(u8 num, u8 *ies, size_t len)
+static u8 *find_ie(u8 num, u8 *ies, int len)
{
while (len > 2 && ies[0] != num) {
len -= ies[1] + 2;
--
1.5.4.1
^ permalink raw reply related
* Re: memleaks, acpi + ext4 + tty
From: H. Peter Anvin @ 2009-09-01 22:10 UTC (permalink / raw)
To: Luis R. Rodriguez
Cc: John W. Linville, Catalin Marinas, H. Peter Anvin, linux-kernel,
Aneesh Kumar K.V, Greg Kroah-Hartman, linux-wireless
In-Reply-To: <43e72e890908311258y45565a9fo1e739992c00b650@mail.gmail.com>
On 08/31/2009 12:58 PM, Luis R. Rodriguez wrote:
>
> Good news is Linus' rc8 tag *has the same issue* so the reason why
> wireless-testing has it is rc8 *does indeed have it*.
>
> So Peter, if there is something extra or missing from
> linux-2.6-allstable head it certainly fixed my issues, will have to
> try a new respin of it to ensure it wasn't a fluke. Odd thing too
> though is even my distribution kernel (karmic rc8 generic) works fine.
>
linux-2.6-allstable head is == linus.
-hpa
^ permalink raw reply
* Re: [PATCH 4/4] ath5k: add hardware CCMP encyption support
From: Pavel Roskin @ 2009-09-01 22:03 UTC (permalink / raw)
To: Bob Copeland
Cc: linville, jirislaby, mickflemm, lrodriguez, linux-wireless,
ath5k-devel
In-Reply-To: <20090827191715.GA30419@hash.localnet>
On Thu, 2009-08-27 at 15:17 -0400, Bob Copeland wrote:
> - ah->ah_aes_support =
> + ah->ah_aes_support = srev >= AR5K_SREV_AR5212_V4 &&
Fine with me, but please use parentheses here, just for readability:
h->ah_aes_support = (srev >= AR5K_SREV_AR5212_V4) && ...
Also, let's call it AR5K_SREV_AR5212_R4 because 4 is the revision, not
the version.
--
Regards,
Pavel Roskin
^ permalink raw reply
* Re: 2.6.31 regression: iwlagn power_level no longer works
From: Andrew Lutomirski @ 2009-09-01 21:49 UTC (permalink / raw)
To: Gábor Stefanik; +Cc: linux-wireless
In-Reply-To: <69e28c910909011439g6eb94e33m3bbfc2e2bbcf47e9@mail.gmail.com>
2009/9/1 Gábor Stefanik <netrolller.3d@gmail.com>:
> On Tue, Sep 1, 2009 at 11:26 PM, Andy Lutomirski<luto@mit.edu> wrote:
>> On 2.6.30.5, I can echo 1 >/sys/class/net/wlan0/device/power_level, and the
>> value changes to 1, my wakeup rate goes way down, and my power consumption
>> (as measured by powertop) drops noticeably.
>>
>> On 2.6.31-rc7, I can still echo 1 to that file, but nothing happens, and the
>> value I get if I 'cat power_level' remains at 0.
>>
>> My kernel configs are as identical as 'make oldconfig' knows how to make
>> them.
>>
>> Any ideas?
>
> Power saving has been disabled temporarily in recent versions, as it
> caused too many problems. AFAIK either there is either a modparam to
> re-enable it or you can re-enable it using iwconfig (it is simply off
> by default). There was talk on the mailing list whether to use a
> modparam or iwconfig - I don't remember what the outcome was.
I can't find it in modinfo on iwlcore, iwlagn, cfg80211, or mac80211.
And iwconfig power <n> fails for all the <n> I tried.
If it's intentionally disabled, shouldn't writes to the file fail? A
printk explaining what's going on might also be nice. (I bet I won't
be the only one to report a regression of 2.6.31 is released like
this.)
--Andy
>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>
>
>
> --
> Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
>
^ permalink raw reply
* Re: phy0: release an RX reorder frame due to timeout on earlier frames
From: Gábor Stefanik @ 2009-09-01 21:41 UTC (permalink / raw)
To: Michael Kaminsky; +Cc: linux-wireless, Jouni Malinen
In-Reply-To: <4A9D7E79.6090000@csail.mit.edu>
On Tue, Sep 1, 2009 at 10:05 PM, Michael Kaminsky<kaminsky@csail.mit.edu> wrote:
> I'm running a git checkout of iwlwifi-2.6.git from around Aug. 10
> (d229b68..). I filed a bug report at
>
> http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2076
>
> and I was asked to post my situation to this list.
>
> I'm seeing regular "outages" when using 11n where no packets seem to go
> through (card is an Intel 5300). When this happens, I see the following
> in my dmesg output:
>
> phy0: release an RX reorder frame due to timeout on earlier frames
>
> (To see this message, you need to compile with CONFIG_MAC80211_HT_DEBUG.
> The message comes from net/mac80211/rx.c.)
>
> There's dmesg log attached to the above bug report which gives a
> high-level picture (no extra debugging) of what happens. I associate
> (with HT), things work for a little while, and then this message is
> printed out (at which point the network stops working). If I manually
> re-associate, things work again. If I do nothing, eventually the driver
> re-associates by itself, and things also work again. Letting the driver
> re-associate automatically, though, can take a while (e.g, sometimes
> close to a minute). Note that in my environment, there are multiple APs
> serving the same ESSID. This error seems to happen quite regularly.
>
> Thanks,
>
> Michael
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
Try also enabling iwlwifi debugging - enable CONFIG_IWLWIFI_DEBUG,
then load iwlagn with modparam "debug=0x43fff".
--
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
^ permalink raw reply
* Re: 2.6.31 regression: iwlagn power_level no longer works
From: Gábor Stefanik @ 2009-09-01 21:39 UTC (permalink / raw)
To: Andy Lutomirski; +Cc: linux-wireless
In-Reply-To: <4A9D9168.2070608@mit.edu>
On Tue, Sep 1, 2009 at 11:26 PM, Andy Lutomirski<luto@mit.edu> wrote:
> On 2.6.30.5, I can echo 1 >/sys/class/net/wlan0/device/power_level, and the
> value changes to 1, my wakeup rate goes way down, and my power consumption
> (as measured by powertop) drops noticeably.
>
> On 2.6.31-rc7, I can still echo 1 to that file, but nothing happens, and the
> value I get if I 'cat power_level' remains at 0.
>
> My kernel configs are as identical as 'make oldconfig' knows how to make
> them.
>
> Any ideas?
Power saving has been disabled temporarily in recent versions, as it
caused too many problems. AFAIK either there is either a modparam to
re-enable it or you can re-enable it using iwconfig (it is simply off
by default). There was talk on the mailing list whether to use a
modparam or iwconfig - I don't remember what the outcome was.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
^ permalink raw reply
* Re: Ath5k and proprietary extensions
From: Luis R. Rodriguez @ 2009-09-01 21:39 UTC (permalink / raw)
To: Nick Kossifidis
Cc: John W. Linville, Bob Copeland, proski, ath5k-devel,
linux-wireless, ic.felix, Felix Fietkau
In-Reply-To: <40f31dec0908282151t245912f0ye79684d4a519f3c9@mail.gmail.com>
On Fri, Aug 28, 2009 at 9:51 PM, Nick Kossifidis<mickflemm@gmail.com> wrote:
FWIW I plan on ignoring all bug reports for all of these vendor
extensions. The only thing I may consider looking at is 10 / 5 MHz
channel bandwidth usage and when its allowed by the standard.
Luis
^ permalink raw reply
* 2.6.31 regression: iwlagn power_level no longer works
From: Andy Lutomirski @ 2009-09-01 21:26 UTC (permalink / raw)
To: linux-wireless
On 2.6.30.5, I can echo 1 >/sys/class/net/wlan0/device/power_level, and
the value changes to 1, my wakeup rate goes way down, and my power
consumption (as measured by powertop) drops noticeably.
On 2.6.31-rc7, I can still echo 1 to that file, but nothing happens, and
the value I get if I 'cat power_level' remains at 0.
My kernel configs are as identical as 'make oldconfig' knows how to make
them.
Any ideas?
^ permalink raw reply
* Re: WARNING: at include/net/mac80211.h:2104 minstrel_get_rate
From: Arnd Hannemann @ 2009-09-01 21:03 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org; +Cc: ath5k-devel
In-Reply-To: <4A924A99.9020203@nets.rwth-aachen.de>
Hi,
seems to be reproducable although it takes a long time.
To conclude, did not see this with rc3,4,5
seen this with rc6,7.
Any ideas?
[593792.440386] ------------[ cut here ]------------
[593792.454763] WARNING: at include/net/mac80211.h:2104
minstrel_get_rate+0x78/0x48a [mac80211]()
[593792.480688] Modules linked in: xt_state ipt_MASQUERADE aes_generic
ipt_LOG iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4
arc4 ecb ath5k ehci_hcd ohci_hcd mac80211 ath
[593792.531824] Pid: 2524, comm: wpa_supplicant Not tainted
2.6.31-rc7-ah0 #1
[593792.552525] Call Trace:
[593792.560302] [<d086140c>] ? minstrel_get_rate+0x78/0x48a [mac80211]
[593792.579461] [<c1012722>] warn_slowpath_common+0x60/0x77
[593792.595751] [<c1012746>] warn_slowpath_null+0xd/0x10
[593792.611351] [<d086140c>] minstrel_get_rate+0x78/0x48a [mac80211]
[593792.630061] [<d0855a32>] rate_control_get_rate+0x82/0xc9 [mac80211]
[593792.649559] [<d085afff>] invoke_tx_handlers+0x4f9/0xb37 [mac80211]
[593792.668813] [<d085a875>] ? __ieee80211_tx_prepare+0x2a5/0x2fc
[mac80211]
[593792.689598] [<d085ba06>] ieee80211_tx+0xa9/0x199 [mac80211]
[593792.707027] [<d085c0e2>] ieee80211_master_start_xmit+0x280/0x290
[mac80211]
[593792.728533] [<c119f6f9>] dev_hard_start_xmit+0x1c2/0x24a
[593792.745107] [<c11ad02b>] __qdisc_run+0xb4/0x172
[593792.759353] [<c11a1d31>] dev_queue_xmit+0x1b9/0x2a8
[593792.774613] [<c124d8c7>] ? nl80211_send_deauth+0xd/0x11
[593792.791008] [<d085d5ae>] ieee80211_tx_skb+0x4e/0x51 [mac80211]
[593792.809187] [<d0851765>] ieee80211_send_deauth_disassoc+0xfc/0x104
[mac80211]
[593792.831315] [<d08518b6>] ieee80211_set_disassoc+0xf5/0x1f9 [mac80211]
[593792.851336] [<d085459d>] ieee80211_sta_req_auth+0x5b/0x9a [mac80211]
[593792.871102] [<d084c14c>] ieee80211_ioctl_siwgenie+0x6f/0x74 [mac80211]
[593792.891315] [<c1247498>] ioctl_standard_call+0x1d6/0x26c
[593792.907883] [<c1259259>] ? __mutex_lock_slowpath+0x17e/0x186
[593792.925490] [<c124705b>] wext_handle_ioctl+0xe2/0x179
[593792.941321] [<d084c0dd>] ? ieee80211_ioctl_siwgenie+0x0/0x74 [mac80211]
[593792.961803] [<c11a0f2e>] dev_ioctl+0x554/0x57e
[593792.975787] [<c1194856>] ? sys_sendto+0xa1/0xc0
[593792.990004] [<c1194fc9>] ? sys_recvfrom+0x96/0xb7
[593793.004742] [<c119553c>] ? sock_ioctl+0x0/0x1ee
[593793.018958] [<c119571e>] sock_ioctl+0x1e2/0x1ee
[593793.033179] [<c119553c>] ? sock_ioctl+0x0/0x1ee
[593793.047409] [<c1056eb9>] vfs_ioctl+0x19/0x50
[593793.060832] [<c105770b>] do_vfs_ioctl+0x446/0x47a
[593793.075571] [<c119488d>] ? sys_send+0x18/0x1a
[593793.089275] [<c1195304>] ? sys_socketcall+0xbb/0x165
[593793.104806] [<c105776b>] sys_ioctl+0x2c/0x45
[593793.118233] [<c1002715>] syscall_call+0x7/0xb
[593793.131928] ---[ end trace 1a964dcf098671ca ]---
Arnd Hannemann wrote:
> Hi,
>
> I managed to trigger the following warning (for the first time)
> on 2.6.31-rc6. Never seen this in rc3,4,5 but maybe I was
> just lucky this time.
>
> [854748.332641] wlan0: associated
> [854756.240475] ------------[ cut here ]------------
> [854756.254840] WARNING: at include/net/mac80211.h:2104 minstrel_get_rate+0x78/0x48a [mac80211]()
> [854756.280793] Modules linked in: xt_state ipt_MASQUERADE aes_generic ipt_LOG iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 arc4 ecb ath5k mac80211 ehci_hcd ath ohci_hcd
> [854756.331887] Pid: 2554, comm: wpa_supplicant Not tainted 2.6.31-rc6-ah0 #8
> [854756.352601] Call Trace:
> [854756.360408] [<d08873e0>] ? minstrel_get_rate+0x78/0x48a [mac80211]
> [854756.379597] [<c1012746>] warn_slowpath_common+0x60/0x77
> [854756.395887] [<c101276a>] warn_slowpath_null+0xd/0x10
> [854756.411487] [<d08873e0>] minstrel_get_rate+0x78/0x48a [mac80211]
> [854756.430129] [<c113b665>] ? vsnprintf+0xceb/0xd62
> [854756.444692] [<d087ba06>] rate_control_get_rate+0x82/0xc9 [mac80211]
> [854756.464190] [<d0880fd3>] invoke_tx_handlers+0x4f9/0xb37 [mac80211]
> [854756.483347] [<c1058d12>] ? pollwake+0x0/0x59
> [854756.496872] [<d0880849>] ? __ieee80211_tx_prepare+0x2a5/0x2fc [mac80211]
> [854756.517656] [<d08819da>] ieee80211_tx+0xa9/0x199 [mac80211]
> [854756.535056] [<d08820b6>] ieee80211_master_start_xmit+0x280/0x290 [mac80211]
> [854756.556562] [<c119f641>] dev_hard_start_xmit+0x1c2/0x24a
> [854756.573136] [<c11acf67>] __qdisc_run+0xb4/0x172
> [854756.587352] [<c11a1c79>] dev_queue_xmit+0x1b9/0x2a8
> [854756.602611] [<c124d7c3>] ? nl80211_send_deauth+0xd/0x11
> [854756.618976] [<d0883582>] ieee80211_tx_skb+0x4e/0x51 [mac80211]
> [854756.637185] [<d0877739>] ieee80211_send_deauth_disassoc+0xfc/0x104 [mac80211]
> [854756.659283] [<d087788a>] ieee80211_set_disassoc+0xf5/0x1f9 [mac80211]
> [854756.679303] [<d087a571>] ieee80211_sta_req_auth+0x5b/0x9a [mac80211]
> [854756.699039] [<d0872a51>] ieee80211_ioctl_siwfreq+0x10b/0x13e [mac80211]
> [854756.719498] [<c1247209>] ioctl_standard_call+0x4b/0x26c
> [854756.735791] [<c1259159>] ? __mutex_lock_slowpath+0x17e/0x186
> [854756.753398] [<c1246f57>] wext_handle_ioctl+0xe2/0x179
> [854756.769228] [<d0872946>] ? ieee80211_ioctl_siwfreq+0x0/0x13e [mac80211]
> [854756.789710] [<c11a0e76>] dev_ioctl+0x554/0x57e
> [854756.803693] [<c11947d2>] ? sys_sendto+0xa1/0xc0
> [854756.817911] [<c1194f45>] ? sys_recvfrom+0x96/0xb7
> [854756.832652] [<c122882a>] ? packet_bind+0x50/0x66
> [854756.847117] [<c11954b8>] ? sock_ioctl+0x0/0x1ee
> [854756.861333] [<c119569a>] sock_ioctl+0x1e2/0x1ee
> [854756.875555] [<c11954b8>] ? sock_ioctl+0x0/0x1ee
> [854756.889781] [<c1056e99>] vfs_ioctl+0x19/0x50
> [854756.903235] [<c10576eb>] do_vfs_ioctl+0x446/0x47a
> [854756.917974] [<c1194809>] ? sys_send+0x18/0x1a
> [854756.931677] [<c1195280>] ? sys_socketcall+0xbb/0x165
> [854756.947179] [<c105774b>] sys_ioctl+0x2c/0x45
> [854756.960605] [<c1002715>] syscall_call+0x7/0xb
> [854756.974302] ---[ end trace cd3397cce4cc2497 ]---
> [854764.311238] wlan0: authenticate with AP XX:XX:XX:XX:XX:XX
>
>
> Best regards,
> Arnd
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
--
Dipl.-Inform. Arnd Hannemann
RWTH Aachen University
Dept. of Computer Science, Informatik 4
Ahornstr. 55, D-52074 Aachen, Germany
Phone: (+49 241) 80-21423 Fax: (+49 241) 80-22220
^ permalink raw reply
* Re: Ath5k and proprietary extensions
From: Pavel Roskin @ 2009-09-01 20:31 UTC (permalink / raw)
To: Nick Kossifidis
Cc: John W. Linville, Luis R. Rodriguez, Bob Copeland, ath5k-devel,
linux-wireless, ic.felix, Felix Fietkau
In-Reply-To: <40f31dec0908282151t245912f0ye79684d4a519f3c9@mail.gmail.com>
On Sat, 2009-08-29 at 07:51 +0300, Nick Kossifidis wrote:
> a) X.R.: eXtended Range is a set of proprietary rates and some extra
> techniques (various hw tweaks etc) to enable long distance, low
> bandwidth links.
I'm not interested because it's ugly and we don't have a good reference
implementation. Besides, there must be a reason why it's not in the
FreeBSD HAL. Either it's patented or Atheros was ashamed to expose that
code.
> b) OFDM-only g settings for AR5211: AR5211 chips have support for
> draft-g (eg. no dynamic CCK/OFDM modulation, only OFDM). I don't know
> if we want to support it or not, removing the settings will save us
> some space and since it's a draft g implementation i don't think there
> are many compatible APs out there. Is there any possibility to support
> draft-g on mac80211/cfg80211 ? If not we can just drop it else it's
> just some extra data, no big deal.
If there is a simple way to support it, let's do it. I think having
"pure G" may be a good idea in some situations, regardless of the
hardware limitations. But that's something that should be done in
mac80211.
I would keep the initialization code for now.
That said, AR5210 and AR5211 are so rare, that we might consider
splitting them into separate drivers that would not be actively
maintained.
> c) Half/quarter rate channels (10/5MHz width) and turbo mode (double
> rate - 40MHz width): Hw can transmit with different channel width
> allowing us to operate on half, quarter or double rate (also called
> turbo mode).
It would be nice to be able to receive on wide and narrow channels, at
least in the monitor mode. Generally, "be liberal in what you accept,
and conservative in what you send".
We'll need some API to set the bandwidth and radiotap flags to
communicate the bandwidth to the recipient.
> d) Fast frames: Hw can tx/rx jumbo frames of 3kbytes+ so fast frame
> aggregation is a way to make use of that hw feature by sending 2
> frames together (for more infos check out super ag white paper).
Likewise, it would be nice to receive them.
> e) Compression: Hw can do on-chip compression/decompression using
> standard Lempel Ziv algorithm per tx queue, MadWiFi implements this
> and uses a vendor IE to let others know that it supports this feature
> (same IE is used for all capabilities, fast frames, XR etc).
Same thing here, as long as we can reuse the existing kernel code for
decompression.
--
Regards,
Pavel Roskin
^ permalink raw reply
* phy0: release an RX reorder frame due to timeout on earlier frames
From: Michael Kaminsky @ 2009-09-01 20:05 UTC (permalink / raw)
To: linux-wireless; +Cc: Jouni Malinen
I'm running a git checkout of iwlwifi-2.6.git from around Aug. 10
(d229b68..). I filed a bug report at
http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2076
and I was asked to post my situation to this list.
I'm seeing regular "outages" when using 11n where no packets seem to go
through (card is an Intel 5300). When this happens, I see the following
in my dmesg output:
phy0: release an RX reorder frame due to timeout on earlier frames
(To see this message, you need to compile with CONFIG_MAC80211_HT_DEBUG.
The message comes from net/mac80211/rx.c.)
There's dmesg log attached to the above bug report which gives a
high-level picture (no extra debugging) of what happens. I associate
(with HT), things work for a little while, and then this message is
printed out (at which point the network stops working). If I manually
re-associate, things work again. If I do nothing, eventually the driver
re-associates by itself, and things also work again. Letting the driver
re-associate automatically, though, can take a while (e.g, sometimes
close to a minute). Note that in my environment, there are multiple APs
serving the same ESSID. This error seems to happen quite regularly.
Thanks,
Michael
^ permalink raw reply
* Re: zd1211rw on ppc (iBook G4)
From: Leonardo H. Souza Hamada @ 2009-09-01 20:02 UTC (permalink / raw)
To: linux-wireless
In-Reply-To: <3ace41890908311126m5212926cl27172ae775fc92f2@mail.gmail.com>
Some more diagnostic info for the rw driver, this time compiled as
built-in and debug option in the kernel for 2.6.30.
dmesg for rw driver output:
usb 1-2: new high speed USB device using ehci_hcd and address 2
usb 1-2: New USB device found, idVendor=0411, idProduct=00da
usb 1-2: New USB device strings: Mfr=16, Product=32, SerialNumber=0
usb 1-2: Product: USB2.0 WLAN
usb 1-2: Manufacturer: Buffalo
usb 1-2: configuration #1 chosen from 1 choice
usb 1-2: print_id() 0411:00da v4810 high
usb 1-2: reset high speed USB device using ehci_hcd and address 2
zd1211rw 1-2:1.0: zd_chip_read_mac_addr_fw()
phy0: Selected rate control algorithm 'minstrel'
zd1211rw 1-2:1.0: probe() successful
zd1211rw 1-2:1.0: phy0
zd1211rw 1-2:1.0: zd_usb_init_hw()
usb 1-2: request_fw_file() fw name zd1211/zd1211b_ub
usb 1-2: firmware: requesting zd1211/zd1211b_ub
usb 1-2: upload_firmware() firmware device id 0x4810 is equal to the
actual device id
usb 1-2: request_fw_file() fw name zd1211/zd1211b_uphr
usb 1-2: firmware: requesting zd1211/zd1211b_uphr
usb 1-2: upload_code() transfer size 4096
usb 1-2: upload_code() transfer size 1024
usb 1-2: upload_code() firmware confirm return value 0x01
zd1211rw 1-2:1.0: zd_usb_enable_int()
zd1211rw 1-2:1.0: zd_usb_enable_int() submit urb ce577580
zd1211rw 1-2:1.0: zd_chip_init_hw()
zd1211rw 1-2:1.0: dump_cr() CR_AFTER_PNP 0x00000000
zd1211rw 1-2:1.0: dump_cr() CR_GPI_EN 0x00000000
zd1211rw 1-2:1.0: dump_cr() CR_INTERRUPT 0x00000000
zd1211rw 1-2:1.0: read_fw_regs_offset() fw_regs_base: 0xf7f1
zd1211rw 1-2:1.0: read_pod() E2P_POD 0xa000011a
zd1211rw 1-2:1.0: read_pod() RF AL2230S_RF 0xa PA type 0x0 patch CCK 1
patch CR157 0 patch 6M 0 new PHY 1 link LED1 tx led 1
zd1211rw 1-2:1.0: hw_init()
zd1211rw 1-2:1.0: zd1211b_hw_reset_phy()
zd1211rw 1-2:1.0: zd1211b_hw_init_hmac()
zd1211rw 1-2:1.0: zd_usb_rfwrite() value 0x0241000 bits 24
zd1211rw 1-2:1.0: firmware version 4725
zd1211rw 1-2:1.0: dump_fw_registers() FW_FIRMWARE_VER 0x4725
zd1211rw 1-2:1.0: dump_fw_registers() FW_USB_SPEED 0x0001
zd1211rw 1-2:1.0: dump_fw_registers() FW_FIX_TX_RATE 0x0000
zd1211rw 1-2:1.0: dump_fw_registers() FW_LINK_STATUS 0x0000
zd1211rw 1-2:1.0: dump_cr() CR_AFTER_PNP 0x00000001
zd1211rw 1-2:1.0: dump_cr() CR_GPI_EN 0x00000000
zd1211rw 1-2:1.0: dump_cr() CR_INTERRUPT 0x00000000
zd1211rw 1-2:1.0: zd1211b chip 0411:00da v4810 high 00-16-01 AL2230S_RF
pa0 g--N-
zd1211rw 1-2:1.0: zd_read_regdomain() regdomain: 0x49
zd1211rw 1-2:1.0: zd_usb_disable_int() urb ce577580 killed
zd1211rw 1-2:1.0: zd_usb_init_hw() couldn't initialize mac. Error number 1
iwconfig:
lo no wireless extensions.
eth0 no wireless extensions.
tunl0 no wireless extensions.
gre0 no wireless extensions.
wmaster0 no wireless extensions.
wlan0 IEEE 802.11bg ESSID:""
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Tx-Power=0 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Hin-Tak Leung wrote:
> I have a bunch of patches which bring the 2.22 vendor driver up to
> 2.6.29 and 3.0 the vendor driver up to 2.6.30:
> http://htl10.users.sourceforge.net/patchsets/
> It doesn't fix the rw driver, but might be good enough for you?
>
I have downloaded the vendor driver and applied your patchset.
Inserted the vendor { USB_DEVICE(0x0411, 0x00DA) }, in
ar2524drv/src/zdusb.c
Recompiled as zd1211REV_B
dmesg for vendor driver:
udev: starting version 145
_____ ____ _ ____
|__ / _| _ \ / \ / ___|
/ / | | | | | |/ _ \ \___ \
/ /| |_| | |_| / ___ \ ___) |
/____\__, |____/_/ \_\____/
|___/
zd1211 - version 3.0.0.56
vendor_id = 0411
product_id = 00da
USB 2.0 Host
Release Ver = 4810
EEPORM Ver = 4330
Finsih download Firmware. Ready to reboot
Finsih download Firmware. Ready to reboot
Finsih download Firmware. Ready to reboot
ohci1394 0002:20:0e.0: enabling device (0000 -> 0002)
zd1211_USB_PACKAGE_READ_REGISTER: warning, restarting INT EP
zd1211_readl retry OK
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[40]
MMIO=[f5000000-f50007ff] Max Packet=[2048] IR/IT contexts=[8/8]
PA type: 2
Airoha AL2230S_RF
Overwrite CR157 = 0x0
Overwrite CR47 = 0x10019
zd1205_config: EEP(HWFeature)=0xF7D0
AllowedChannel = 00013fff
Region:0
zd1211_USB_PACKAGE_READ_REGISTER: warning, restarting INT EP
zd1211_readl retry OK
usbcore: registered new interface driver zd1211
I am able to do iwlist ath0 scanning, a list of acess point appears but
sometimes this fails.
iwlist ath0 scanning:
ath0 Scan completed :
Cell 01 - Address: 00:21:91:0E:0B:F7
ESSID:"adminWF10"
Mode:Master
Frequency=2.412 GHz (Channel 1)
Quality=46/100 Signal level=-74 dBm Noise
level=-96 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
48 Mb/s; 54 Mb/s
Extra:bcn_int=100
Cell 02 - Address: 00:1D:0F:D1:4D:D2
ESSID:"LGAA_P_CENTRAL_WF01"
Mode:Master
Frequency=2.437 GHz (Channel 6)
Quality=43/100 Signal level=-76 dBm Noise
level=-96 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
48 Mb/s; 54 Mb/s
Extra:bcn_int=100
Cell 03 - Address: 00:1B:11:87:A7:0C
ESSID:"ponto-acesso-mutsuo"
Mode:Master
Frequency=2.437 GHz (Channel 6)
Quality=43/100 Signal level=-76 dBm Noise
level=-96 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:bcn_int=100
Scan again, it fails and works seemingly in an unknown manner.
iwlist ath0 scanning
ath0 Failed to read scan data : Resource temporarily unavailable
Some message in dmesg of relevance:
...
zd1211_USB_PACKAGE_READ_REGISTER: warning, restarting INT EP
zd1211_readl retry OK
zd1211_USB_PACKAGE_READ_REGISTER: warning, restarting INT EP
zd1211_readl retry OK
zd1211_USB_PACKAGE_READ_REGISTER: warning, restarting INT EP
zd1211_readl retry OK
zd1211_USB_PACKAGE_READ_REGISTER: warning, restarting INT EP
zd1211_readl retry OK
....(many times over)
and
1211_readl failed for 5 attempts...Very Serious<3>1211_readl failed for
5 attempts...Very Serious<3>1211_readl failed for 5 attempts...Very
Serious<3>1211_readl failed for 5 attempts...Very Serious<3>1211_readl
failed for 5 attempts...Very Serious<3>1211_readl failed for 5
attempts...Very Serious<3>1211_readl failed for 5 attempts...Very
Serious<3>1211_readl failed for 5 attempts...Very Serious<3>1211_readl
failed for 5 attempts...Very Serious<3>1211_readl failed for 5
attempts...Very Serious<3>1211_readl failed for 5 attempts...Very
Serious<3>1211_readl failed for 5 attempts...Very Serious<3>1211_readl
failed for 5 attempts...Very Serious<3>1211_readl failed for 5
attempts...Very Serious<3>1211_readl failed for 5 attempts...Very
Serious<7>zd1205_notify_disjoin_event
Giving up .... for now.
Regards,
Leonardo
^ permalink raw reply
* Re: [PATCH v2 6/7] wireless: update mac80211 kconfig entry
From: Luis R. Rodriguez @ 2009-09-01 19:19 UTC (permalink / raw)
To: Johannes Berg
Cc: Gábor Stefanik, Luis Rodriguez,
linux-wireless@vger.kernel.org
In-Reply-To: <1251832064.24846.2.camel@johannes.local>
On Tue, Sep 1, 2009 at 12:07 PM, Johannes Berg<johannes@sipsolutions.net> wrote:
> On Tue, 2009-09-01 at 11:01 -0700, Luis R. Rodriguez wrote:
>
>> Software MAC sounds reasonable to me. Anyone else?
>
> Except we're not actually talking about the MAC at all. The MAC is still
> in the hardware.
How how about just:
"mac80211 - IEEE 802.11 frame processing"
Then as for referring to these type of devices I am not aware of other
vocabulary for them other than SoftMAC or its derivative names.
Luis
^ permalink raw reply
* Re: [PATCH v2 6/7] wireless: update mac80211 kconfig entry
From: Johannes Berg @ 2009-09-01 19:07 UTC (permalink / raw)
To: Luis R. Rodriguez
Cc: Gábor Stefanik, Luis Rodriguez,
linux-wireless@vger.kernel.org
In-Reply-To: <20090901180147.GA4272@mosca>
[-- Attachment #1: Type: text/plain, Size: 223 bytes --]
On Tue, 2009-09-01 at 11:01 -0700, Luis R. Rodriguez wrote:
> Software MAC sounds reasonable to me. Anyone else?
Except we're not actually talking about the MAC at all. The MAC is still
in the hardware.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
^ permalink raw reply
* Re: wireless_send_event kmemleaks
From: Pavel Roskin @ 2009-09-01 18:43 UTC (permalink / raw)
To: Luis R. Rodriguez; +Cc: linux-wireless
In-Reply-To: <43e72e890909011024p7b7176a6vfad3902ac714df79@mail.gmail.com>
On Tue, 2009-09-01 at 10:24 -0700, Luis R. Rodriguez wrote:
> Can't tell you how to reproduce yet.
>
> unreferenced object 0xffff88003ba5fd00 (size 256):
> comm "events/0", pid 9, jiffies 4297130623
> backtrace:
> [<ffffffff8112200d>] create_object+0x13d/0x2d0
> [<ffffffff811222c5>] kmemleak_alloc+0x25/0x60
> [<ffffffff81118a63>] kmem_cache_alloc_node+0x193/0x200
> [<ffffffff81446cca>] __alloc_skb+0x4a/0x180
> [<ffffffff81506be2>] wireless_send_event+0x1f2/0x410
I wonder if we can translate it to the line numbers. Together with the
git revision, it would be quite useful. addr2line can do it for an
individual address, but to process the whole dump, a script would be
needed.
--
Regards,
Pavel Roskin
^ permalink raw reply
* [PATCH v2] wireless-regdb: TH gets 5 GHz enabled as of new regulatory rules
From: Luis R. Rodriguez @ 2009-09-01 18:20 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Luis R. Rodriguez, Michael Green, David Quan
Phattanon Duangdara reported the National Telecommunication
Commisions of Thailand has announced new regulatory rules
about 5GHz for RLAN last year.
I have verified this matches our documentation internally
at Atheros. I also verified HT40 is allowed.
Reference in Thai Language:
http://www.ratchakitcha.soc.go.th/DATA/PDF/2551/E/042/64.PDF
Cc: Michael Green <michael.green@atheros.com>
Cc: David Quan <david.quan@atheros.com>
Reported-by: Phattanon Duangdara <sfalpha@gmail.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
---
John, this is v2, I have verified internally TH does allow for HT40.
db.txt | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/db.txt b/db.txt
index fad098d..84be443 100644
--- a/db.txt
+++ b/db.txt
@@ -535,6 +535,10 @@ country TW:
country TH:
(2402 - 2482 @ 40), (N/A, 20)
+ (5170 - 5250 @ 40), (3, 17)
+ (5250 - 5330 @ 40), (3, 20), DFS
+ (5490 - 5710 @ 40), (3, 20), DFS
+ (5735 - 5835 @ 40), (3, 30)
country TT:
(2402 - 2482 @ 40), (N/A, 20)
--
1.6.3.3
^ permalink raw reply related
* Re: [PATCH v2 6/7] wireless: update mac80211 kconfig entry
From: John W. Linville @ 2009-09-01 18:07 UTC (permalink / raw)
To: Luis R. Rodriguez
Cc: Gábor Stefanik, Luis Rodriguez,
linux-wireless@vger.kernel.org
In-Reply-To: <20090901180147.GA4272@mosca>
On Tue, Sep 01, 2009 at 11:01:47AM -0700, Luis R. Rodriguez wrote:
> On Tue, Sep 01, 2009 at 10:47:43AM -0700, Gábor Stefanik wrote:
> > The description isn't the problem - the term "SoftMAC" is, due to its
> > connections with ieee80211softmac. Even "Software MAC" would be better
> > here.
>
> Software MAC sounds reasonable to me. Anyone else?
Seems fine -- IMHO "soft MAC" would be fine as well...
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply
* Re: [PATCH v2 6/7] wireless: update mac80211 kconfig entry
From: Luis R. Rodriguez @ 2009-09-01 18:01 UTC (permalink / raw)
To: Gábor Stefanik; +Cc: Luis Rodriguez, linux-wireless@vger.kernel.org
In-Reply-To: <69e28c910909011047p2ecb7f9fg84b4089a70d1be5c@mail.gmail.com>
On Tue, Sep 01, 2009 at 10:47:43AM -0700, Gábor Stefanik wrote:
> 2009/9/1 Luis R. Rodriguez <lrodriguez@atheros.com>:
> > On Tue, Sep 01, 2009 at 10:28:35AM -0700, Gábor Stefanik wrote:
> >> On Tue, Sep 1, 2009 at 7:18 PM, Luis R. Rodriguez<lrodriguez@atheros.com> wrote:
> >> > On Tue, Sep 01, 2009 at 09:33:00AM -0700, Jouni Malinen wrote:
> >> >> On Tue, Sep 01, 2009 at 08:54:25AM -0700, Luis R. Rodriguez wrote:
> >> >> > + SoftMAC devices. SoftMAC devices allow for a finer control of the
> >> >>
> >> >> Again, I don't really like the term "SoftMAC" here..
> >> >
> >> > What's a better term?
> >> >
> >>
> >> "Software-based", "Software-MAC", "Software-defined", or anything that
> >> neither implies that the stack is designed for PrismGT (the
> >> capitalization "SoftMAC" comes from Intersil AFAIK), nor allows
> >> confusion with ieee80211softmac (which could result if we write it
> >> with all small letters as "softmac").
> >
> > Indeed, I picked up 'SoftMAC' and 'FullMAC' terminology from the prism54 days
> > after they decided to move in that direction as others were or already had. For
> > better or for worse I have been using 'SoftMAC' throughout wireless.kernel.org
> > documentation to distinguish between 'FullMAC' cards. I really have not been
> > able to find any other suitable replacements, are there legal reasons to not use
> > such terms?
> >
> > I thought 'mac80211' name was brilliant as it highlighted the main focus for the
> > module, to focus on the MAC frame processing, I just cannot think of any
> > description for it other than something to support SoftMAC cards.
>
> The description isn't the problem - the term "SoftMAC" is, due to its
> connections with ieee80211softmac. Even "Software MAC" would be better
> here.
Software MAC sounds reasonable to me. Anyone else?
Luis
^ permalink raw reply
* Re: memleaks, acpi + ext4 + tty
From: Luis R. Rodriguez @ 2009-09-01 18:00 UTC (permalink / raw)
To: Zhu Yi
Cc: Eric Paris, John W. Linville, Eric Paris, Catalin Marinas,
H. Peter Anvin, linux-kernel@vger.kernel.org, Aneesh Kumar K.V,
Greg Kroah-Hartman, linux-wireless
In-Reply-To: <1251786829.8830.277.camel@debian>
On Mon, Aug 31, 2009 at 11:33 PM, Zhu Yi<yi.zhu@intel.com> wrote:
> On Tue, 2009-09-01 at 08:31 +0800, Luis R. Rodriguez wrote:
>> >>
>> http://git.infradead.org/users/eparis/notify.git/commit/b962e7312ae87006aed6f68ceee94bdf8db08338
>> >>
>> >> FWIW for that patch:
>> >>
>> >> Tested-by: Luis R. Rodriguez <lrodriguez@atheros.com>
>> >>
>> >> So -- you if you're like me and had issues with bootup lag on
>> >> wireless-testing, you can probably fix your wireless-testing by
>> >> pulling his patches:
>> >>
>> >> git pull git://git.infradead.org/users/eparis/notify.git for-linus
>> >>
>> >> I saw Linus had some other fixes but I'll wait for rc9 for that as
>> my
>> >> box seems reasonably stable right now.
>> >
>> > Yes, -rc8 broke pretty badly for a number of people. Linus did pull
>> all
>> > of the fixes that I know of. I wouldn't suggest pulling just that
>> one
>> > commit. All 3 of the post -rc8 patches in my tree fix -rc8
>> > regressions :(
>>
>> Thanks, the note -- so I guess best is to just pull from Linus ontop
>> of wireless-testing.
>
> I confirm I'm also suffered with the problem on today's wireless-testing
> tip (udevadm --settle hangs on boot) and the above patch does fix the
> issue for me. Thanks both for identify and fix the problem.
Just a heads up -- the relevant fixes are now merged on
wireless-testing, thanks John.
Luis
^ permalink raw reply
* Re: [PATCH v2 6/7] wireless: update mac80211 kconfig entry
From: Gábor Stefanik @ 2009-09-01 17:47 UTC (permalink / raw)
To: Luis R. Rodriguez; +Cc: Luis Rodriguez, linux-wireless
In-Reply-To: <20090901173822.GG8261@mosca>
2009/9/1 Luis R. Rodriguez <lrodriguez@atheros.com>:
> On Tue, Sep 01, 2009 at 10:28:35AM -0700, Gábor Stefanik wrote:
>> On Tue, Sep 1, 2009 at 7:18 PM, Luis R. Rodriguez<lrodriguez@atheros.com> wrote:
>> > On Tue, Sep 01, 2009 at 09:33:00AM -0700, Jouni Malinen wrote:
>> >> On Tue, Sep 01, 2009 at 08:54:25AM -0700, Luis R. Rodriguez wrote:
>> >> > + SoftMAC devices. SoftMAC devices allow for a finer control of the
>> >>
>> >> Again, I don't really like the term "SoftMAC" here..
>> >
>> > What's a better term?
>> >
>>
>> "Software-based", "Software-MAC", "Software-defined", or anything that
>> neither implies that the stack is designed for PrismGT (the
>> capitalization "SoftMAC" comes from Intersil AFAIK), nor allows
>> confusion with ieee80211softmac (which could result if we write it
>> with all small letters as "softmac").
>
> Indeed, I picked up 'SoftMAC' and 'FullMAC' terminology from the prism54 days
> after they decided to move in that direction as others were or already had. For
> better or for worse I have been using 'SoftMAC' throughout wireless.kernel.org
> documentation to distinguish between 'FullMAC' cards. I really have not been
> able to find any other suitable replacements, are there legal reasons to not use
> such terms?
>
> I thought 'mac80211' name was brilliant as it highlighted the main focus for the
> module, to focus on the MAC frame processing, I just cannot think of any
> description for it other than something to support SoftMAC cards.
The description isn't the problem - the term "SoftMAC" is, due to its
connections with ieee80211softmac. Even "Software MAC" would be better
here.
>
> Luis
>
--
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
^ permalink raw reply
* Re: [PATCH v2 6/7] wireless: update mac80211 kconfig entry
From: Luis R. Rodriguez @ 2009-09-01 17:38 UTC (permalink / raw)
To: Gábor Stefanik; +Cc: Luis Rodriguez, linux-wireless
In-Reply-To: <69e28c910909011028i25fba508t9e68fb24168193eb@mail.gmail.com>
On Tue, Sep 01, 2009 at 10:28:35AM -0700, Gábor Stefanik wrote:
> On Tue, Sep 1, 2009 at 7:18 PM, Luis R. Rodriguez<lrodriguez@atheros.com> wrote:
> > On Tue, Sep 01, 2009 at 09:33:00AM -0700, Jouni Malinen wrote:
> >> On Tue, Sep 01, 2009 at 08:54:25AM -0700, Luis R. Rodriguez wrote:
> >> > + SoftMAC devices. SoftMAC devices allow for a finer control of the
> >>
> >> Again, I don't really like the term "SoftMAC" here..
> >
> > What's a better term?
> >
>
> "Software-based", "Software-MAC", "Software-defined", or anything that
> neither implies that the stack is designed for PrismGT (the
> capitalization "SoftMAC" comes from Intersil AFAIK), nor allows
> confusion with ieee80211softmac (which could result if we write it
> with all small letters as "softmac").
Indeed, I picked up 'SoftMAC' and 'FullMAC' terminology from the prism54 days
after they decided to move in that direction as others were or already had. For
better or for worse I have been using 'SoftMAC' throughout wireless.kernel.org
documentation to distinguish between 'FullMAC' cards. I really have not been
able to find any other suitable replacements, are there legal reasons to not use
such terms?
I thought 'mac80211' name was brilliant as it highlighted the main focus for the
module, to focus on the MAC frame processing, I just cannot think of any
description for it other than something to support SoftMAC cards.
Luis
^ permalink raw reply
* wireless_send_event kmemleaks
From: Luis R. Rodriguez @ 2009-09-01 17:24 UTC (permalink / raw)
To: linux-wireless
Can't tell you how to reproduce yet.
unreferenced object 0xffff88003ba5fd00 (size 256):
comm "events/0", pid 9, jiffies 4297130623
backtrace:
[<ffffffff8112200d>] create_object+0x13d/0x2d0
[<ffffffff811222c5>] kmemleak_alloc+0x25/0x60
[<ffffffff81118a63>] kmem_cache_alloc_node+0x193/0x200
[<ffffffff81446cca>] __alloc_skb+0x4a/0x180
[<ffffffff81506be2>] wireless_send_event+0x1f2/0x410
[<ffffffffa0175074>] ___cfg80211_scan_done+0xe4/0x110 [cfg80211]
[<ffffffffa01750c6>] __cfg80211_scan_done+0x26/0x50 [cfg80211]
[<ffffffff8106de60>] worker_thread+0x1d0/0x380
[<ffffffff81073246>] kthread+0xa6/0xb0
[<ffffffff810130ca>] child_rip+0xa/0x20
[<ffffffffffffffff>] 0xffffffffffffffff
unreferenced object 0xffff88001f662000 (size 4096):
comm "events/0", pid 9, jiffies 4297130623
backtrace:
[<ffffffff8112200d>] create_object+0x13d/0x2d0
[<ffffffff811222c5>] kmemleak_alloc+0x25/0x60
[<ffffffff811198db>] __kmalloc_node_track_caller+0x1ab/0x220
[<ffffffff81446cfb>] __alloc_skb+0x7b/0x180
[<ffffffff81506be2>] wireless_send_event+0x1f2/0x410
[<ffffffffa0175074>] ___cfg80211_scan_done+0xe4/0x110 [cfg80211]
[<ffffffffa01750c6>] __cfg80211_scan_done+0x26/0x50 [cfg80211]
[<ffffffff8106de60>] worker_thread+0x1d0/0x380
[<ffffffff81073246>] kthread+0xa6/0xb0
[<ffffffff810130ca>] child_rip+0xa/0x20
[<ffffffffffffffff>] 0xffffffffffffffff
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox