mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 21:09:25 -04:00
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:
committed by
David S. Miller
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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user