Oliver Neukum [mailto:oneukum@xxxxxxx] > Sent: Tuesday, August 13, 2013 4:49 PM > To: Hayeswang > Cc: netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > linux-usb@xxxxxxxxxxxxxxx > Subject: Re: [PATCH net-next 1/3] net/usb/r8152: support aggregation > [...] > > + len_used = 0; > > + rx_desc = agg->head; > > + rx_data = agg->head; > > + smp_wmb(); > > + pkt_len = le32_to_cpu(rx_desc->opts1) & RX_LEN_MASK; > > + len_used += sizeof(struct rx_desc) + pkt_len; > > + > > + while (urb->actual_length >= len_used) { > > + if (pkt_len < ETH_ZLEN) > > + break; > > + > > + pkt_len -= 4; /* CRC */ > > + rx_data += sizeof(struct rx_desc); > > + > > + skb = netdev_alloc_skb_ip_align(netdev, > > pkt_len); > > + if (!skb) { > > + stats->rx_dropped++; > > + break; > > + } > > + memcpy(skb->data, rx_data, pkt_len); > > + skb_put(skb, pkt_len); > > + skb->protocol = eth_type_trans(skb, netdev); > > + netif_rx(skb); > > + stats->rx_packets++; > > + stats->rx_bytes += pkt_len; > > + > > + rx_data = rx_agg_align(rx_data + > pkt_len + 4); > > + rx_desc = (struct rx_desc *)rx_data; > > + smp_wmb(); > > Against what is the memory barrier? Excuse me. I don't understand your question. Do you mean the function should not be used here? Best Regards, Hayes -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html