Jeff,

These are simple bugfixes.  They are eligible for consideration for the
2.6.15-rc train.

John

---

The following changes since commit cd52d1ee9a92587b242d946a2300a3245d3b885a:
  Linus Torvalds:
        Linux v2.6.15-rc1

are found in the git repository at:

  git://git.tuxdriver.com/git/netdev-jwl.git

James Ketrenos:
      ipw2100: Fix 'Driver using old /proc/net/wireless...' message

John W. Linville:
      e1000: avoid leak when e1000_setup_loopback_test fails
      e1000: zero-out pointers in e1000_free_desc_rings
      fec_8xx: make CONFIG_FEC_8XX depend on CONFIG_8xx

 drivers/net/e1000/e1000_ethtool.c |   16 +++++++++++++---
 drivers/net/fec_8xx/Kconfig       |    2 +-
 drivers/net/wireless/ipw2100.c    |   29 ++++++++++++++++++-----------
 drivers/net/wireless/ipw2100.h    |    2 ++
 4 files changed, 34 insertions(+), 15 deletions(-)

diff --git a/drivers/net/e1000/e1000_ethtool.c 
b/drivers/net/e1000/e1000_ethtool.c
index 8eae8ba..8646914 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -960,13 +960,21 @@ e1000_free_desc_rings(struct e1000_adapt
                }
        }
 
-       if(txdr->desc)
+       if(txdr->desc) {
                pci_free_consistent(pdev, txdr->size, txdr->desc, txdr->dma);
-       if(rxdr->desc)
+               txdr->desc = NULL;
+       }
+       if(rxdr->desc) {
                pci_free_consistent(pdev, rxdr->size, rxdr->desc, rxdr->dma);
+               rxdr->desc = NULL;
+       }
 
        kfree(txdr->buffer_info);
+       txdr->buffer_info = NULL;
+
        kfree(rxdr->buffer_info);
+       rxdr->buffer_info = NULL;
+
        return;
 }
 
@@ -1440,9 +1448,11 @@ static int
 e1000_loopback_test(struct e1000_adapter *adapter, uint64_t *data)
 {
        if((*data = e1000_setup_desc_rings(adapter))) goto err_loopback;
-       if((*data = e1000_setup_loopback_test(adapter))) goto err_loopback;
+       if((*data = e1000_setup_loopback_test(adapter)))
+               goto err_loopback_setup;
        *data = e1000_run_loopback_test(adapter);
        e1000_loopback_cleanup(adapter);
+err_loopback_setup:
        e1000_free_desc_rings(adapter);
 err_loopback:
        return *data;
diff --git a/drivers/net/fec_8xx/Kconfig b/drivers/net/fec_8xx/Kconfig
index 94e7a9a..a84c232 100644
--- a/drivers/net/fec_8xx/Kconfig
+++ b/drivers/net/fec_8xx/Kconfig
@@ -1,6 +1,6 @@
 config FEC_8XX
        tristate "Motorola 8xx FEC driver"
-       depends on NET_ETHERNET && FEC
+       depends on NET_ETHERNET && 8xx
        select MII
 
 config FEC_8XX_GENERIC_PHY
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index a2e6214..77d2a21 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -6344,7 +6344,8 @@ static struct net_device *ipw2100_alloc_
        dev->ethtool_ops = &ipw2100_ethtool_ops;
        dev->tx_timeout = ipw2100_tx_timeout;
        dev->wireless_handlers = &ipw2100_wx_handler_def;
-       dev->get_wireless_stats = ipw2100_wx_wireless_stats;
+       priv->wireless_data.ieee80211 = priv->ieee;
+       dev->wireless_data = &priv->wireless_data;
        dev->set_mac_address = ipw2100_set_address;
        dev->watchdog_timeo = 3 * HZ;
        dev->irq = 0;
@@ -7178,6 +7179,11 @@ static int ipw2100_wx_get_range(struct n
        }
        range->num_frequency = val;
 
+       /* Event capability (kernel + driver) */
+       range->event_capa[0] = (IW_EVENT_CAPA_K_0 |
+                               IW_EVENT_CAPA_MASK(SIOCGIWAP));
+       range->event_capa[1] = IW_EVENT_CAPA_K_1;
+
        IPW_DEBUG_WX("GET Range\n");
 
        return 0;
@@ -8446,16 +8452,6 @@ static iw_handler ipw2100_private_handle
 #endif                         /* CONFIG_IPW2100_MONITOR */
 };
 
-static struct iw_handler_def ipw2100_wx_handler_def = {
-       .standard = ipw2100_wx_handlers,
-       .num_standard = sizeof(ipw2100_wx_handlers) / sizeof(iw_handler),
-       .num_private = sizeof(ipw2100_private_handler) / sizeof(iw_handler),
-       .num_private_args = sizeof(ipw2100_private_args) /
-           sizeof(struct iw_priv_args),
-       .private = (iw_handler *) ipw2100_private_handler,
-       .private_args = (struct iw_priv_args *)ipw2100_private_args,
-};
-
 /*
  * Get wireless statistics.
  * Called by /proc/net/wireless
@@ -8597,6 +8593,17 @@ static struct iw_statistics *ipw2100_wx_
        return (struct iw_statistics *)NULL;
 }
 
+static struct iw_handler_def ipw2100_wx_handler_def = {
+       .standard = ipw2100_wx_handlers,
+       .num_standard = sizeof(ipw2100_wx_handlers) / sizeof(iw_handler),
+       .num_private = sizeof(ipw2100_private_handler) / sizeof(iw_handler),
+       .num_private_args = sizeof(ipw2100_private_args) /
+           sizeof(struct iw_priv_args),
+       .private = (iw_handler *) ipw2100_private_handler,
+       .private_args = (struct iw_priv_args *)ipw2100_private_args,
+       .get_wireless_stats = ipw2100_wx_wireless_stats,
+};
+
 static void ipw2100_wx_event_work(struct ipw2100_priv *priv)
 {
        union iwreq_data wrqu;
diff --git a/drivers/net/wireless/ipw2100.h b/drivers/net/wireless/ipw2100.h
index 140fdf2..7c65b10 100644
--- a/drivers/net/wireless/ipw2100.h
+++ b/drivers/net/wireless/ipw2100.h
@@ -571,6 +571,8 @@ struct ipw2100_priv {
        struct net_device *net_dev;
        struct iw_statistics wstats;
 
+       struct iw_public_data wireless_data;
+
        struct tasklet_struct irq_tasklet;
 
        struct workqueue_struct *workqueue;
-- 
John W. Linville
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to