ibmveth: Fix alignment of rx queue bug
authorSantiago Leon <santil@linux.vnet.ibm.com>
Tue, 4 Sep 2012 14:41:37 +0000 (14:41 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 5 Sep 2012 21:45:23 +0000 (17:45 -0400)
commitd90c92fee89ccd75ef2646f3bde0b4c0450666c3
tree60d4c56ed7c1aaccc7743363cd7f8583afe8150b
parentd013ef2aba8fe765ca683598e404203215632373
ibmveth: Fix alignment of rx queue bug

This patch fixes a bug found by Nish Aravamudan
(https://lkml.org/lkml/2012/5/15/220) where the driver is not following
the spec (it is not aligning the rx buffer on a 16-byte boundary) and the
hypervisor aborts the registration, making the device unusable.

The fix follows BenH's recommendation (https://lkml.org/lkml/2012/7/20/461)
to replace the kmalloc+map for a single call to dma_alloc_coherent()
because that function always aligns to a 16-byte boundary.

The stable trees will run into this bug whenever the rx buffer kmalloc call
returns something not aligned on a 16-byte boundary.

Cc: <stable@vger.kernel.org>
Signed-off-by: Santiago Leon <santil@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ibmveth.c