|
@@ -355,7 +355,7 @@ static struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
|
|
|
u32 packet_len;
|
|
|
u32 padbytes = 0xffff0000;
|
|
|
|
|
|
- padlen = ((skb->len + 4) % 512) ? 0 : 4;
|
|
|
+ padlen = ((skb->len + 4) & (dev->maxpacket - 1)) ? 0 : 4;
|
|
|
|
|
|
if ((!skb_cloned(skb)) &&
|
|
|
((headroom + tailroom) >= (4 + padlen))) {
|
|
@@ -377,7 +377,7 @@ static struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
|
|
|
cpu_to_le32s(&packet_len);
|
|
|
skb_copy_to_linear_data(skb, &packet_len, sizeof(packet_len));
|
|
|
|
|
|
- if ((skb->len % 512) == 0) {
|
|
|
+ if (padlen) {
|
|
|
cpu_to_le32s(&padbytes);
|
|
|
memcpy(skb_tail_pointer(skb), &padbytes, sizeof(padbytes));
|
|
|
skb_put(skb, sizeof(padbytes));
|