On Sat, Oct 27, 2012 at 11:03:16AM +0100, mark.einon@xxxxxxxxx wrote: > @@ -2748,7 +2747,7 @@ static struct rfd *nic_rx_pkts(struct et131x_adapter *adapter) > struct rx_ring *rx_local = &adapter->rx_ring; > struct rx_status_block *status; > struct pkt_stat_desc *psr; > - struct rfd *rfd; > + struct rfd *rfd = NULL; ^^^^^^^^^^ Not needed. > u32 i; > u8 *buf; > unsigned long flags; > @@ -2758,6 +2757,7 @@ static struct rfd *nic_rx_pkts(struct et131x_adapter *adapter) > u32 len; > u32 word0; > u32 word1; > + struct sk_buff *skb = NULL; ^^^^^^^^^^ Not needed. Don't introduce unneeded assignments. It defeats the error checking in GCC and has leads to NULL dereference bugs. > - if (len) { > - /* Determine if this is a multicast packet coming in */ > - if ((word0 & ALCATEL_MULTICAST_PKT) && > - !(word0 & ALCATEL_BROADCAST_PKT)) { > - /* Promiscuous mode and Multicast mode are > - * not mutually exclusive as was first > - * thought. I guess Promiscuous is just > - * considered a super-set of the other > - * filters. Generally filter is 0x2b when in > - * promiscuous mode. > - */ > - if ((adapter->packet_filter & > - ET131X_PACKET_TYPE_MULTICAST) > - && !(adapter->packet_filter & > - ET131X_PACKET_TYPE_PROMISCUOUS) > - && !(adapter->packet_filter & > + if (len == 0) > + goto out; > + Should this be: if (len == 0) { rfd->len = 0; goto out; } That would match the original code better, but I'm not sure if it is necessary. regards, dan carpenter _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel