Commit 3d29b0c3 authored by John W. Linville's avatar John W. Linville

netdevice zd1201: Convert directly reference of netdev->priv to netdev_priv()

We have some reasons to kill netdev->priv:
1. netdev->priv is equal to netdev_priv().
2. netdev_priv() wraps the calculation of netdev->priv's offset, obviously
   netdev_priv() is more flexible than netdev->priv.
But we cann't kill netdev->priv, because so many drivers reference to it
directly.

OK, becasue Dave S. Miller said, "every direct netdev->priv usage is a bug",
and I want to kill netdev->priv later, I decided to convert all the direct
reference of netdev->priv first.

(Original patch posted by Wang Chen <wangchen@cn.fujitsu.com> w/ above
changelog but using dev->ml_priv.  That doesn't seem appropriate
to me for this driver, so I've revamped it to use netdev_priv()
instead. -- JWL)
Reviewed-by: default avatarWang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 9d2f4720
...@@ -743,7 +743,7 @@ static int zd1201_join(struct zd1201 *zd, char *essid, int essidlen) ...@@ -743,7 +743,7 @@ static int zd1201_join(struct zd1201 *zd, char *essid, int essidlen)
static int zd1201_net_open(struct net_device *dev) static int zd1201_net_open(struct net_device *dev)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
/* Start MAC with wildcard if no essid set */ /* Start MAC with wildcard if no essid set */
if (!zd->mac_enabled) if (!zd->mac_enabled)
...@@ -781,7 +781,7 @@ static int zd1201_net_stop(struct net_device *dev) ...@@ -781,7 +781,7 @@ static int zd1201_net_stop(struct net_device *dev)
*/ */
static int zd1201_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) static int zd1201_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
unsigned char *txbuf = zd->txdata; unsigned char *txbuf = zd->txdata;
int txbuflen, pad = 0, err; int txbuflen, pad = 0, err;
struct urb *urb = zd->tx_urb; struct urb *urb = zd->tx_urb;
...@@ -831,7 +831,7 @@ static int zd1201_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -831,7 +831,7 @@ static int zd1201_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
static void zd1201_tx_timeout(struct net_device *dev) static void zd1201_tx_timeout(struct net_device *dev)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
if (!zd) if (!zd)
return; return;
...@@ -846,7 +846,7 @@ static void zd1201_tx_timeout(struct net_device *dev) ...@@ -846,7 +846,7 @@ static void zd1201_tx_timeout(struct net_device *dev)
static int zd1201_set_mac_address(struct net_device *dev, void *p) static int zd1201_set_mac_address(struct net_device *dev, void *p)
{ {
struct sockaddr *addr = p; struct sockaddr *addr = p;
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
int err; int err;
if (!zd) if (!zd)
...@@ -863,21 +863,21 @@ static int zd1201_set_mac_address(struct net_device *dev, void *p) ...@@ -863,21 +863,21 @@ static int zd1201_set_mac_address(struct net_device *dev, void *p)
static struct net_device_stats *zd1201_get_stats(struct net_device *dev) static struct net_device_stats *zd1201_get_stats(struct net_device *dev)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
return &zd->stats; return &zd->stats;
} }
static struct iw_statistics *zd1201_get_wireless_stats(struct net_device *dev) static struct iw_statistics *zd1201_get_wireless_stats(struct net_device *dev)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
return &zd->iwstats; return &zd->iwstats;
} }
static void zd1201_set_multicast(struct net_device *dev) static void zd1201_set_multicast(struct net_device *dev)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
struct dev_mc_list *mc = dev->mc_list; struct dev_mc_list *mc = dev->mc_list;
unsigned char reqbuf[ETH_ALEN*ZD1201_MAXMULTI]; unsigned char reqbuf[ETH_ALEN*ZD1201_MAXMULTI];
int i; int i;
...@@ -897,7 +897,7 @@ static void zd1201_set_multicast(struct net_device *dev) ...@@ -897,7 +897,7 @@ static void zd1201_set_multicast(struct net_device *dev)
static int zd1201_config_commit(struct net_device *dev, static int zd1201_config_commit(struct net_device *dev,
struct iw_request_info *info, struct iw_point *data, char *essid) struct iw_request_info *info, struct iw_point *data, char *essid)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
return zd1201_mac_reset(zd); return zd1201_mac_reset(zd);
} }
...@@ -912,7 +912,7 @@ static int zd1201_get_name(struct net_device *dev, ...@@ -912,7 +912,7 @@ static int zd1201_get_name(struct net_device *dev,
static int zd1201_set_freq(struct net_device *dev, static int zd1201_set_freq(struct net_device *dev,
struct iw_request_info *info, struct iw_freq *freq, char *extra) struct iw_request_info *info, struct iw_freq *freq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short channel = 0; short channel = 0;
int err; int err;
...@@ -937,7 +937,7 @@ static int zd1201_set_freq(struct net_device *dev, ...@@ -937,7 +937,7 @@ static int zd1201_set_freq(struct net_device *dev,
static int zd1201_get_freq(struct net_device *dev, static int zd1201_get_freq(struct net_device *dev,
struct iw_request_info *info, struct iw_freq *freq, char *extra) struct iw_request_info *info, struct iw_freq *freq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short channel; short channel;
int err; int err;
...@@ -953,7 +953,7 @@ static int zd1201_get_freq(struct net_device *dev, ...@@ -953,7 +953,7 @@ static int zd1201_get_freq(struct net_device *dev,
static int zd1201_set_mode(struct net_device *dev, static int zd1201_set_mode(struct net_device *dev,
struct iw_request_info *info, __u32 *mode, char *extra) struct iw_request_info *info, __u32 *mode, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short porttype, monitor = 0; short porttype, monitor = 0;
unsigned char buffer[IW_ESSID_MAX_SIZE+2]; unsigned char buffer[IW_ESSID_MAX_SIZE+2];
int err; int err;
...@@ -1015,7 +1015,7 @@ static int zd1201_set_mode(struct net_device *dev, ...@@ -1015,7 +1015,7 @@ static int zd1201_set_mode(struct net_device *dev,
static int zd1201_get_mode(struct net_device *dev, static int zd1201_get_mode(struct net_device *dev,
struct iw_request_info *info, __u32 *mode, char *extra) struct iw_request_info *info, __u32 *mode, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short porttype; short porttype;
int err; int err;
...@@ -1091,7 +1091,7 @@ static int zd1201_get_range(struct net_device *dev, ...@@ -1091,7 +1091,7 @@ static int zd1201_get_range(struct net_device *dev,
static int zd1201_get_wap(struct net_device *dev, static int zd1201_get_wap(struct net_device *dev,
struct iw_request_info *info, struct sockaddr *ap_addr, char *extra) struct iw_request_info *info, struct sockaddr *ap_addr, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
unsigned char buffer[6]; unsigned char buffer[6];
if (!zd1201_getconfig(zd, ZD1201_RID_COMMSQUALITY, buffer, 6)) { if (!zd1201_getconfig(zd, ZD1201_RID_COMMSQUALITY, buffer, 6)) {
...@@ -1119,7 +1119,7 @@ static int zd1201_set_scan(struct net_device *dev, ...@@ -1119,7 +1119,7 @@ static int zd1201_set_scan(struct net_device *dev,
static int zd1201_get_scan(struct net_device *dev, static int zd1201_get_scan(struct net_device *dev,
struct iw_request_info *info, struct iw_point *srq, char *extra) struct iw_request_info *info, struct iw_point *srq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
int err, i, j, enabled_save; int err, i, j, enabled_save;
struct iw_event iwe; struct iw_event iwe;
char *cev = extra; char *cev = extra;
...@@ -1211,7 +1211,7 @@ static int zd1201_get_scan(struct net_device *dev, ...@@ -1211,7 +1211,7 @@ static int zd1201_get_scan(struct net_device *dev,
static int zd1201_set_essid(struct net_device *dev, static int zd1201_set_essid(struct net_device *dev,
struct iw_request_info *info, struct iw_point *data, char *essid) struct iw_request_info *info, struct iw_point *data, char *essid)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
if (data->length > IW_ESSID_MAX_SIZE) if (data->length > IW_ESSID_MAX_SIZE)
return -EINVAL; return -EINVAL;
...@@ -1226,7 +1226,7 @@ static int zd1201_set_essid(struct net_device *dev, ...@@ -1226,7 +1226,7 @@ static int zd1201_set_essid(struct net_device *dev,
static int zd1201_get_essid(struct net_device *dev, static int zd1201_get_essid(struct net_device *dev,
struct iw_request_info *info, struct iw_point *data, char *essid) struct iw_request_info *info, struct iw_point *data, char *essid)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
memcpy(essid, zd->essid, zd->essidlen); memcpy(essid, zd->essid, zd->essidlen);
data->flags = 1; data->flags = 1;
...@@ -1247,7 +1247,7 @@ static int zd1201_get_nick(struct net_device *dev, struct iw_request_info *info, ...@@ -1247,7 +1247,7 @@ static int zd1201_get_nick(struct net_device *dev, struct iw_request_info *info,
static int zd1201_set_rate(struct net_device *dev, static int zd1201_set_rate(struct net_device *dev,
struct iw_request_info *info, struct iw_param *rrq, char *extra) struct iw_request_info *info, struct iw_param *rrq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short rate; short rate;
int err; int err;
...@@ -1280,7 +1280,7 @@ static int zd1201_set_rate(struct net_device *dev, ...@@ -1280,7 +1280,7 @@ static int zd1201_set_rate(struct net_device *dev,
static int zd1201_get_rate(struct net_device *dev, static int zd1201_get_rate(struct net_device *dev,
struct iw_request_info *info, struct iw_param *rrq, char *extra) struct iw_request_info *info, struct iw_param *rrq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short rate; short rate;
int err; int err;
...@@ -1313,7 +1313,7 @@ static int zd1201_get_rate(struct net_device *dev, ...@@ -1313,7 +1313,7 @@ static int zd1201_get_rate(struct net_device *dev,
static int zd1201_set_rts(struct net_device *dev, struct iw_request_info *info, static int zd1201_set_rts(struct net_device *dev, struct iw_request_info *info,
struct iw_param *rts, char *extra) struct iw_param *rts, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
int err; int err;
short val = rts->value; short val = rts->value;
...@@ -1333,7 +1333,7 @@ static int zd1201_set_rts(struct net_device *dev, struct iw_request_info *info, ...@@ -1333,7 +1333,7 @@ static int zd1201_set_rts(struct net_device *dev, struct iw_request_info *info,
static int zd1201_get_rts(struct net_device *dev, struct iw_request_info *info, static int zd1201_get_rts(struct net_device *dev, struct iw_request_info *info,
struct iw_param *rts, char *extra) struct iw_param *rts, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short rtst; short rtst;
int err; int err;
...@@ -1350,7 +1350,7 @@ static int zd1201_get_rts(struct net_device *dev, struct iw_request_info *info, ...@@ -1350,7 +1350,7 @@ static int zd1201_get_rts(struct net_device *dev, struct iw_request_info *info,
static int zd1201_set_frag(struct net_device *dev, struct iw_request_info *info, static int zd1201_set_frag(struct net_device *dev, struct iw_request_info *info,
struct iw_param *frag, char *extra) struct iw_param *frag, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
int err; int err;
short val = frag->value; short val = frag->value;
...@@ -1371,7 +1371,7 @@ static int zd1201_set_frag(struct net_device *dev, struct iw_request_info *info, ...@@ -1371,7 +1371,7 @@ static int zd1201_set_frag(struct net_device *dev, struct iw_request_info *info,
static int zd1201_get_frag(struct net_device *dev, struct iw_request_info *info, static int zd1201_get_frag(struct net_device *dev, struct iw_request_info *info,
struct iw_param *frag, char *extra) struct iw_param *frag, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short fragt; short fragt;
int err; int err;
...@@ -1400,7 +1400,7 @@ static int zd1201_get_retry(struct net_device *dev, ...@@ -1400,7 +1400,7 @@ static int zd1201_get_retry(struct net_device *dev,
static int zd1201_set_encode(struct net_device *dev, static int zd1201_set_encode(struct net_device *dev,
struct iw_request_info *info, struct iw_point *erq, char *key) struct iw_request_info *info, struct iw_point *erq, char *key)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short i; short i;
int err, rid; int err, rid;
...@@ -1457,7 +1457,7 @@ static int zd1201_set_encode(struct net_device *dev, ...@@ -1457,7 +1457,7 @@ static int zd1201_set_encode(struct net_device *dev,
static int zd1201_get_encode(struct net_device *dev, static int zd1201_get_encode(struct net_device *dev,
struct iw_request_info *info, struct iw_point *erq, char *key) struct iw_request_info *info, struct iw_point *erq, char *key)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short i; short i;
int err; int err;
...@@ -1490,7 +1490,7 @@ static int zd1201_get_encode(struct net_device *dev, ...@@ -1490,7 +1490,7 @@ static int zd1201_get_encode(struct net_device *dev,
static int zd1201_set_power(struct net_device *dev, static int zd1201_set_power(struct net_device *dev,
struct iw_request_info *info, struct iw_param *vwrq, char *extra) struct iw_request_info *info, struct iw_param *vwrq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short enabled, duration, level; short enabled, duration, level;
int err; int err;
...@@ -1529,7 +1529,7 @@ static int zd1201_set_power(struct net_device *dev, ...@@ -1529,7 +1529,7 @@ static int zd1201_set_power(struct net_device *dev,
static int zd1201_get_power(struct net_device *dev, static int zd1201_get_power(struct net_device *dev,
struct iw_request_info *info, struct iw_param *vwrq, char *extra) struct iw_request_info *info, struct iw_param *vwrq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short enabled, level, duration; short enabled, level, duration;
int err; int err;
...@@ -1616,7 +1616,7 @@ static const iw_handler zd1201_iw_handler[] = ...@@ -1616,7 +1616,7 @@ static const iw_handler zd1201_iw_handler[] =
static int zd1201_set_hostauth(struct net_device *dev, static int zd1201_set_hostauth(struct net_device *dev,
struct iw_request_info *info, struct iw_param *rrq, char *extra) struct iw_request_info *info, struct iw_param *rrq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
if (!zd->ap) if (!zd->ap)
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -1627,7 +1627,7 @@ static int zd1201_set_hostauth(struct net_device *dev, ...@@ -1627,7 +1627,7 @@ static int zd1201_set_hostauth(struct net_device *dev,
static int zd1201_get_hostauth(struct net_device *dev, static int zd1201_get_hostauth(struct net_device *dev,
struct iw_request_info *info, struct iw_param *rrq, char *extra) struct iw_request_info *info, struct iw_param *rrq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short hostauth; short hostauth;
int err; int err;
...@@ -1646,7 +1646,7 @@ static int zd1201_get_hostauth(struct net_device *dev, ...@@ -1646,7 +1646,7 @@ static int zd1201_get_hostauth(struct net_device *dev,
static int zd1201_auth_sta(struct net_device *dev, static int zd1201_auth_sta(struct net_device *dev,
struct iw_request_info *info, struct sockaddr *sta, char *extra) struct iw_request_info *info, struct sockaddr *sta, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
unsigned char buffer[10]; unsigned char buffer[10];
if (!zd->ap) if (!zd->ap)
...@@ -1662,7 +1662,7 @@ static int zd1201_auth_sta(struct net_device *dev, ...@@ -1662,7 +1662,7 @@ static int zd1201_auth_sta(struct net_device *dev,
static int zd1201_set_maxassoc(struct net_device *dev, static int zd1201_set_maxassoc(struct net_device *dev,
struct iw_request_info *info, struct iw_param *rrq, char *extra) struct iw_request_info *info, struct iw_param *rrq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
int err; int err;
if (!zd->ap) if (!zd->ap)
...@@ -1677,7 +1677,7 @@ static int zd1201_set_maxassoc(struct net_device *dev, ...@@ -1677,7 +1677,7 @@ static int zd1201_set_maxassoc(struct net_device *dev,
static int zd1201_get_maxassoc(struct net_device *dev, static int zd1201_get_maxassoc(struct net_device *dev,
struct iw_request_info *info, struct iw_param *rrq, char *extra) struct iw_request_info *info, struct iw_param *rrq, char *extra)
{ {
struct zd1201 *zd = (struct zd1201 *)dev->priv; struct zd1201 *zd = netdev_priv(dev);
short maxassoc; short maxassoc;
int err; int err;
...@@ -1729,6 +1729,7 @@ static int zd1201_probe(struct usb_interface *interface, ...@@ -1729,6 +1729,7 @@ static int zd1201_probe(struct usb_interface *interface,
const struct usb_device_id *id) const struct usb_device_id *id)
{ {
struct zd1201 *zd; struct zd1201 *zd;
struct net_device *dev;
struct usb_device *usb; struct usb_device *usb;
int err; int err;
short porttype; short porttype;
...@@ -1736,9 +1737,12 @@ static int zd1201_probe(struct usb_interface *interface, ...@@ -1736,9 +1737,12 @@ static int zd1201_probe(struct usb_interface *interface,
usb = interface_to_usbdev(interface); usb = interface_to_usbdev(interface);
zd = kzalloc(sizeof(struct zd1201), GFP_KERNEL); dev = alloc_etherdev(sizeof(*zd));
if (!zd) if (!dev)
return -ENOMEM; return -ENOMEM;
zd = netdev_priv(dev);
zd->dev = dev;
zd->ap = ap; zd->ap = ap;
zd->usb = usb; zd->usb = usb;
zd->removed = 0; zd->removed = 0;
...@@ -1773,34 +1777,29 @@ static int zd1201_probe(struct usb_interface *interface, ...@@ -1773,34 +1777,29 @@ static int zd1201_probe(struct usb_interface *interface,
if (err) if (err)
goto err_start; goto err_start;
zd->dev = alloc_etherdev(0); dev->open = zd1201_net_open;
if (!zd->dev) dev->stop = zd1201_net_stop;
goto err_start; dev->get_stats = zd1201_get_stats;
dev->wireless_handlers =
zd->dev->priv = zd;
zd->dev->open = zd1201_net_open;
zd->dev->stop = zd1201_net_stop;
zd->dev->get_stats = zd1201_get_stats;
zd->dev->wireless_handlers =
(struct iw_handler_def *)&zd1201_iw_handlers; (struct iw_handler_def *)&zd1201_iw_handlers;
zd->dev->hard_start_xmit = zd1201_hard_start_xmit; dev->hard_start_xmit = zd1201_hard_start_xmit;
zd->dev->watchdog_timeo = ZD1201_TX_TIMEOUT; dev->watchdog_timeo = ZD1201_TX_TIMEOUT;
zd->dev->tx_timeout = zd1201_tx_timeout; dev->tx_timeout = zd1201_tx_timeout;
zd->dev->set_multicast_list = zd1201_set_multicast; dev->set_multicast_list = zd1201_set_multicast;
zd->dev->set_mac_address = zd1201_set_mac_address; dev->set_mac_address = zd1201_set_mac_address;
strcpy(zd->dev->name, "wlan%d"); strcpy(dev->name, "wlan%d");
err = zd1201_getconfig(zd, ZD1201_RID_CNFOWNMACADDR, err = zd1201_getconfig(zd, ZD1201_RID_CNFOWNMACADDR,
zd->dev->dev_addr, zd->dev->addr_len); dev->dev_addr, dev->addr_len);
if (err) if (err)
goto err_net; goto err_start;
/* Set wildcard essid to match zd->essid */ /* Set wildcard essid to match zd->essid */
*(__le16 *)buf = cpu_to_le16(0); *(__le16 *)buf = cpu_to_le16(0);
err = zd1201_setconfig(zd, ZD1201_RID_CNFDESIREDSSID, buf, err = zd1201_setconfig(zd, ZD1201_RID_CNFDESIREDSSID, buf,
IW_ESSID_MAX_SIZE+2, 1); IW_ESSID_MAX_SIZE+2, 1);
if (err) if (err)
goto err_net; goto err_start;
if (zd->ap) if (zd->ap)
porttype = ZD1201_PORTTYPE_AP; porttype = ZD1201_PORTTYPE_AP;
...@@ -1808,30 +1807,28 @@ static int zd1201_probe(struct usb_interface *interface, ...@@ -1808,30 +1807,28 @@ static int zd1201_probe(struct usb_interface *interface,
porttype = ZD1201_PORTTYPE_BSS; porttype = ZD1201_PORTTYPE_BSS;
err = zd1201_setconfig16(zd, ZD1201_RID_CNFPORTTYPE, porttype); err = zd1201_setconfig16(zd, ZD1201_RID_CNFPORTTYPE, porttype);
if (err) if (err)
goto err_net; goto err_start;
SET_NETDEV_DEV(zd->dev, &usb->dev); SET_NETDEV_DEV(dev, &usb->dev);
err = register_netdev(zd->dev); err = register_netdev(dev);
if (err) if (err)
goto err_net; goto err_start;
dev_info(&usb->dev, "%s: ZD1201 USB Wireless interface\n", dev_info(&usb->dev, "%s: ZD1201 USB Wireless interface\n",
zd->dev->name); dev->name);
usb_set_intfdata(interface, zd); usb_set_intfdata(interface, zd);
zd1201_enable(zd); /* zd1201 likes to startup enabled, */ zd1201_enable(zd); /* zd1201 likes to startup enabled, */
zd1201_disable(zd); /* interfering with all the wifis in range */ zd1201_disable(zd); /* interfering with all the wifis in range */
return 0; return 0;
err_net:
free_netdev(zd->dev);
err_start: err_start:
/* Leave the device in reset state */ /* Leave the device in reset state */
zd1201_docmd(zd, ZD1201_CMDCODE_INIT, 0, 0, 0); zd1201_docmd(zd, ZD1201_CMDCODE_INIT, 0, 0, 0);
err_zd: err_zd:
usb_free_urb(zd->tx_urb); usb_free_urb(zd->tx_urb);
usb_free_urb(zd->rx_urb); usb_free_urb(zd->rx_urb);
kfree(zd); free_netdev(dev);
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment