X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Fwireless%2Fwavelan.c;fp=drivers%2Fnet%2Fwireless%2Fwavelan.c;h=ff192e96268a1c69519a3c35aac6386bec35ed10;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=5b69befdab7451bced8d23b0046c65371449848b;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/drivers/net/wireless/wavelan.c b/drivers/net/wireless/wavelan.c index 5b69befda..ff192e962 100644 --- a/drivers/net/wireless/wavelan.c +++ b/drivers/net/wireless/wavelan.c @@ -1695,8 +1695,8 @@ static int wv_frequency_list(unsigned long ioaddr, /* I/O port of the card */ /* Look in the table if the frequency is allowed */ if (table[9 - (freq / 16)] & (1 << (freq % 16))) { /* Compute approximate channel number */ - while ((c < NELS(channel_bands)) && - (((channel_bands[c] >> 1) - 24) < freq)) + while ((((channel_bands[c] >> 1) - 24) < freq) && + (c < NELS(channel_bands))) c++; list[i].i = c; /* Set the list index */ @@ -2903,7 +2903,6 @@ static int wavelan_packet_xmit(struct sk_buff *skb, struct net_device * dev) { net_local *lp = (net_local *) dev->priv; unsigned long flags; - char data[ETH_ZLEN]; #ifdef DEBUG_TX_TRACE printk(KERN_DEBUG "%s: ->wavelan_packet_xmit(0x%X)\n", dev->name, @@ -2938,15 +2937,14 @@ static int wavelan_packet_xmit(struct sk_buff *skb, struct net_device * dev) * able to detect collisions, therefore in theory we don't really * need to pad. Jean II */ if (skb->len < ETH_ZLEN) { - memset(data, 0, ETH_ZLEN); - memcpy(data, skb->data, skb->len); - /* Write packet on the card */ - if(wv_packet_write(dev, data, ETH_ZLEN)) - return 1; /* We failed */ + skb = skb_padto(skb, ETH_ZLEN); + if (skb == NULL) + return 0; } - else if(wv_packet_write(dev, skb->data, skb->len)) - return 1; /* We failed */ + /* Write packet on the card */ + if(wv_packet_write(dev, skb->data, skb->len)) + return 1; /* We failed */ dev_kfree_skb(skb); @@ -4308,7 +4306,7 @@ out: * Insertion of the module * I'm now quite proud of the multi-device support. */ -int __init init_module(void) +int init_module(void) { int ret = -EIO; /* Return error if no cards found */ int i;