Lines Matching refs:rx

115 static void reset_asix_rx_fixup_info(struct asix_rx_fixup_info *rx)  in reset_asix_rx_fixup_info()  argument
122 if (rx->ax_skb) { in reset_asix_rx_fixup_info()
124 kfree_skb(rx->ax_skb); in reset_asix_rx_fixup_info()
125 rx->ax_skb = NULL; in reset_asix_rx_fixup_info()
131 rx->remaining = 0; in reset_asix_rx_fixup_info()
132 rx->split_head = false; in reset_asix_rx_fixup_info()
133 rx->header = 0; in reset_asix_rx_fixup_info()
137 struct asix_rx_fixup_info *rx) in asix_rx_fixup_internal() argument
151 if (rx->remaining && (rx->remaining + sizeof(u32) <= skb->len)) { in asix_rx_fixup_internal()
152 offset = ((rx->remaining + 1) & 0xfffe); in asix_rx_fixup_internal()
153 rx->header = get_unaligned_le32(skb->data + offset); in asix_rx_fixup_internal()
156 size = (u16)(rx->header & 0x7ff); in asix_rx_fixup_internal()
157 if (size != ((~rx->header >> 16) & 0x7ff)) { in asix_rx_fixup_internal()
159 rx->remaining); in asix_rx_fixup_internal()
160 reset_asix_rx_fixup_info(rx); in asix_rx_fixup_internal()
167 if (!rx->remaining) { in asix_rx_fixup_internal()
169 rx->header = get_unaligned_le16( in asix_rx_fixup_internal()
171 rx->split_head = true; in asix_rx_fixup_internal()
176 if (rx->split_head == true) { in asix_rx_fixup_internal()
177 rx->header |= (get_unaligned_le16( in asix_rx_fixup_internal()
179 rx->split_head = false; in asix_rx_fixup_internal()
182 rx->header = get_unaligned_le32(skb->data + in asix_rx_fixup_internal()
188 size = (u16)(rx->header & 0x7ff); in asix_rx_fixup_internal()
189 if (size != ((~rx->header >> 16) & 0x7ff)) { in asix_rx_fixup_internal()
191 rx->header, offset); in asix_rx_fixup_internal()
192 reset_asix_rx_fixup_info(rx); in asix_rx_fixup_internal()
198 reset_asix_rx_fixup_info(rx); in asix_rx_fixup_internal()
207 rx->ax_skb = netdev_alloc_skb_ip_align(dev->net, size); in asix_rx_fixup_internal()
209 rx->remaining = size; in asix_rx_fixup_internal()
212 if (rx->remaining > skb->len - offset) { in asix_rx_fixup_internal()
214 rx->remaining -= copy_length; in asix_rx_fixup_internal()
216 copy_length = rx->remaining; in asix_rx_fixup_internal()
217 rx->remaining = 0; in asix_rx_fixup_internal()
220 if (rx->ax_skb) { in asix_rx_fixup_internal()
221 skb_put_data(rx->ax_skb, skb->data + offset, in asix_rx_fixup_internal()
223 if (!rx->remaining) { in asix_rx_fixup_internal()
224 usbnet_skb_return(dev, rx->ax_skb); in asix_rx_fixup_internal()
225 rx->ax_skb = NULL; in asix_rx_fixup_internal()
235 reset_asix_rx_fixup_info(rx); in asix_rx_fixup_internal()
245 struct asix_rx_fixup_info *rx = &dp->rx_fixup_info; in asix_rx_fixup_common() local
247 return asix_rx_fixup_internal(dev, skb, rx); in asix_rx_fixup_common()
252 struct asix_rx_fixup_info *rx; in asix_rx_fixup_common_free() local
257 rx = &dp->rx_fixup_info; in asix_rx_fixup_common_free()
259 if (rx->ax_skb) { in asix_rx_fixup_common_free()
260 kfree_skb(rx->ax_skb); in asix_rx_fixup_common_free()
261 rx->ax_skb = NULL; in asix_rx_fixup_common_free()