via-velocity: Correct 64-byte alignment for rx buffers
(From the VIA driver). The current code does not guarantee 64-byte alignment since it simply does int add = skb->data & 63; skb->data += add; (via skb_reserve). So for example, if the skb->data address would be 0x10, this would result in 32-byte alignment (0x10 + 0x10). Correct by adding 64 - (skb->data & 63) instead. Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
350f75960c
commit
da95b2d422
|
@ -1470,7 +1470,8 @@ static int velocity_alloc_rx_buf(struct velocity_info *vptr, int idx)
|
|||
* Do the gymnastics to get the buffer head for data at
|
||||
* 64byte alignment.
|
||||
*/
|
||||
skb_reserve(rd_info->skb, (unsigned long) rd_info->skb->data & 63);
|
||||
skb_reserve(rd_info->skb,
|
||||
64 - ((unsigned long) rd_info->skb->data & 63));
|
||||
rd_info->skb_dma = pci_map_single(vptr->pdev, rd_info->skb->data,
|
||||
vptr->rx.buf_sz, PCI_DMA_FROMDEVICE);
|
||||
|
||||
|
|
Loading…
Reference in New Issue