Lines Matching refs:rx

54 			   struct asix_rx_fixup_info *rx)  in asix_rx_fixup_internal()  argument
62 if (!rx->size) { in asix_rx_fixup_internal()
64 rx->split_head) { in asix_rx_fixup_internal()
65 if(!rx->split_head) { in asix_rx_fixup_internal()
66 rx->header = get_unaligned_le16( in asix_rx_fixup_internal()
68 rx->split_head = true; in asix_rx_fixup_internal()
72 rx->header |= (get_unaligned_le16( in asix_rx_fixup_internal()
75 rx->split_head = false; in asix_rx_fixup_internal()
79 rx->header = get_unaligned_le32(skb->data + in asix_rx_fixup_internal()
85 rx->size = (u16) (rx->header & 0x7ff); in asix_rx_fixup_internal()
86 if (rx->size != ((~rx->header >> 16) & 0x7ff)) { in asix_rx_fixup_internal()
88 rx->header, offset); in asix_rx_fixup_internal()
89 rx->size = 0; in asix_rx_fixup_internal()
92 rx->ax_skb = netdev_alloc_skb_ip_align(dev->net, in asix_rx_fixup_internal()
93 rx->size); in asix_rx_fixup_internal()
94 if (!rx->ax_skb) in asix_rx_fixup_internal()
98 if (rx->size > dev->net->mtu + ETH_HLEN + VLAN_HLEN) { in asix_rx_fixup_internal()
100 rx->size); in asix_rx_fixup_internal()
101 kfree_skb(rx->ax_skb); in asix_rx_fixup_internal()
102 rx->ax_skb = NULL; in asix_rx_fixup_internal()
103 rx->size = 0U; in asix_rx_fixup_internal()
108 if (rx->size > skb->len - offset) { in asix_rx_fixup_internal()
109 remaining = rx->size - (skb->len - offset); in asix_rx_fixup_internal()
110 rx->size = skb->len - offset; in asix_rx_fixup_internal()
113 data = skb_put(rx->ax_skb, rx->size); in asix_rx_fixup_internal()
114 memcpy(data, skb->data + offset, rx->size); in asix_rx_fixup_internal()
116 usbnet_skb_return(dev, rx->ax_skb); in asix_rx_fixup_internal()
118 offset += (rx->size + 1) & 0xfffe; in asix_rx_fixup_internal()
119 rx->size = remaining; in asix_rx_fixup_internal()
134 struct asix_rx_fixup_info *rx = &dp->rx_fixup_info; in asix_rx_fixup_common() local
136 return asix_rx_fixup_internal(dev, skb, rx); in asix_rx_fixup_common()