hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/net/wireless/wl3501_cs.c
....@@ -134,7 +134,7 @@
134134
135135 /**
136136 * iw_valid_channel - validate channel in regulatory domain
137
- * @reg_comain: regulatory domain
137
+ * @reg_domain: regulatory domain
138138 * @channel: channel to validate
139139 *
140140 * Returns 0 if invalid in the specified regulatory domain, non-zero if valid.
....@@ -458,11 +458,9 @@
458458 /**
459459 * wl3501_send_pkt - Send a packet.
460460 * @this: Card
461
- *
462
- * Send a packet.
463
- *
464
- * data = Ethernet raw frame. (e.g. data[0] - data[5] is Dest MAC Addr,
461
+ * @data: Ethernet raw frame. (e.g. data[0] - data[5] is Dest MAC Addr,
465462 * data[6] - data[11] is Src MAC Addr)
463
+ * @len: Packet length
466464 * Ref: IEEE 802.11
467465 */
468466 static int wl3501_send_pkt(struct wl3501_card *this, u8 *data, u16 len)
....@@ -1330,7 +1328,7 @@
13301328 } else {
13311329 ++dev->stats.tx_packets;
13321330 dev->stats.tx_bytes += skb->len;
1333
- kfree_skb(skb);
1331
+ dev_kfree_skb_irq(skb);
13341332
13351333 if (this->tx_buffer_cnt < 2)
13361334 netif_stop_queue(dev);
....@@ -1864,6 +1862,7 @@
18641862 {
18651863 struct net_device *dev;
18661864 struct wl3501_card *this;
1865
+ int ret;
18671866
18681867 /* The io structure describes IO port mapping */
18691868 p_dev->resource[0]->end = 16;
....@@ -1875,8 +1874,7 @@
18751874
18761875 dev = alloc_etherdev(sizeof(struct wl3501_card));
18771876 if (!dev)
1878
- goto out_link;
1879
-
1877
+ return -ENOMEM;
18801878
18811879 dev->netdev_ops = &wl3501_netdev_ops;
18821880 dev->watchdog_timeo = 5 * HZ;
....@@ -1889,9 +1887,15 @@
18891887 netif_stop_queue(dev);
18901888 p_dev->priv = dev;
18911889
1892
- return wl3501_config(p_dev);
1893
-out_link:
1894
- return -ENOMEM;
1890
+ ret = wl3501_config(p_dev);
1891
+ if (ret)
1892
+ goto out_free_etherdev;
1893
+
1894
+ return 0;
1895
+
1896
+out_free_etherdev:
1897
+ free_netdev(dev);
1898
+ return ret;
18951899 }
18961900
18971901 static int wl3501_config(struct pcmcia_device *link)
....@@ -1947,8 +1951,7 @@
19471951 goto failed;
19481952 }
19491953
1950
- for (i = 0; i < 6; i++)
1951
- dev->dev_addr[i] = ((char *)&this->mac_addr)[i];
1954
+ eth_hw_addr_set(dev, this->mac_addr);
19521955
19531956 /* print probe information */
19541957 printk(KERN_INFO "%s: wl3501 @ 0x%3.3x, IRQ %d, "