diff options
-rw-r--r-- | ibmveth-Fix-alignment-of-rx-queue-bug.patch | 80 | ||||
-rw-r--r-- | kernel.spec | 11 | ||||
-rw-r--r-- | sources | 2 |
3 files changed, 5 insertions, 88 deletions
diff --git a/ibmveth-Fix-alignment-of-rx-queue-bug.patch b/ibmveth-Fix-alignment-of-rx-queue-bug.patch deleted file mode 100644 index 79353a61c..000000000 --- a/ibmveth-Fix-alignment-of-rx-queue-bug.patch +++ /dev/null @@ -1,80 +0,0 @@ -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> ---- - ibmveth.c | 26 +++++++++----------------- - 1 file changed, 9 insertions(+), 17 deletions(-) - ---- a/drivers/net/ethernet/ibm/ibmveth.c 2012-07-09 16:00:53.000000000 -0400 -+++ b/drivers/net/ethernet/ibm/ibmveth.c 2012-08-17 19:51:02.840000188 -0400 -@@ -472,14 +472,9 @@ static void ibmveth_cleanup(struct ibmve - } - - if (adapter->rx_queue.queue_addr != NULL) { -- if (!dma_mapping_error(dev, adapter->rx_queue.queue_dma)) { -- dma_unmap_single(dev, -- adapter->rx_queue.queue_dma, -- adapter->rx_queue.queue_len, -- DMA_BIDIRECTIONAL); -- adapter->rx_queue.queue_dma = DMA_ERROR_CODE; -- } -- kfree(adapter->rx_queue.queue_addr); -+ dma_free_coherent(dev, adapter->rx_queue.queue_len, -+ adapter->rx_queue.queue_addr, -+ adapter->rx_queue.queue_dma); - adapter->rx_queue.queue_addr = NULL; - } - -@@ -556,10 +551,13 @@ static int ibmveth_open(struct net_devic - goto err_out; - } - -+ dev = &adapter->vdev->dev; -+ - adapter->rx_queue.queue_len = sizeof(struct ibmveth_rx_q_entry) * - rxq_entries; -- adapter->rx_queue.queue_addr = kmalloc(adapter->rx_queue.queue_len, -- GFP_KERNEL); -+ adapter->rx_queue.queue_addr = -+ dma_alloc_coherent(dev, adapter->rx_queue.queue_len, -+ &adapter->rx_queue.queue_dma, GFP_KERNEL); - - if (!adapter->rx_queue.queue_addr) { - netdev_err(netdev, "unable to allocate rx queue pages\n"); -@@ -567,19 +565,13 @@ static int ibmveth_open(struct net_devic - goto err_out; - } - -- dev = &adapter->vdev->dev; -- - adapter->buffer_list_dma = dma_map_single(dev, - adapter->buffer_list_addr, 4096, DMA_BIDIRECTIONAL); - adapter->filter_list_dma = dma_map_single(dev, - adapter->filter_list_addr, 4096, DMA_BIDIRECTIONAL); -- adapter->rx_queue.queue_dma = dma_map_single(dev, -- adapter->rx_queue.queue_addr, -- adapter->rx_queue.queue_len, DMA_BIDIRECTIONAL); - - if ((dma_mapping_error(dev, adapter->buffer_list_dma)) || -- (dma_mapping_error(dev, adapter->filter_list_dma)) || -- (dma_mapping_error(dev, adapter->rx_queue.queue_dma))) { -+ (dma_mapping_error(dev, adapter->filter_list_dma))) { - netdev_err(netdev, "unable to map filter or buffer list " - "pages\n"); - rc = -ENOMEM; - --- -To unsubscribe from this list: send the line "unsubscribe netdev" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html
\ No newline at end of file diff --git a/kernel.spec b/kernel.spec index 8e83ca9e3..33a1989af 100644 --- a/kernel.spec +++ b/kernel.spec @@ -95,7 +95,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 5 # The git snapshot level -%define gitrev 2 +%define gitrev 3 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -755,9 +755,6 @@ Patch22066: virtio-scsi-Initialize-scatterlist-structure.patch #rhbz 846037 Patch22067: selinux-Fix-sel_netnode_insert-suspicious-rcu-dereference.patch -#rhbz 852842 -Patch22068: ibmveth-Fix-alignment-of-rx-queue-bug.patch - # END OF PATCH DEFINITIONS %endif @@ -1456,9 +1453,6 @@ ApplyPatch virtio-scsi-Initialize-scatterlist-structure.patch #rhbz 846037 ApplyPatch selinux-Fix-sel_netnode_insert-suspicious-rcu-dereference.patch -#rhbz 852842 -ApplyPatch ibmveth-Fix-alignment-of-rx-queue-bug.patch - # END OF PATCH APPLICATIONS %endif @@ -2321,6 +2315,9 @@ fi # ||----w | # || || %changelog +* Sun Sep 16 2012 Josh Boyer <jwboyer@redhat.com> - 3.6.0-0.rc5.git3.1 +- Linux v3.6-rc5-315-g3f0c3c8 + * Fri Sep 14 2012 Dave Jones <davej@redhat.com> - Enable CONFIG_DRM_LOAD_EDID_FIRMWARE (rhbz 857511) @@ -1,3 +1,3 @@ 24153eaaa81dedc9481ada8cd9c3b83d linux-3.5.tar.xz 64bf4320655fcf172412764eeca9fa7d patch-3.6-rc5.xz -136a0dd334e88def7136486d53e298a9 patch-3.6-rc5-git2.xz +c6374674c8226b5b470becdea700495e patch-3.6-rc5-git3.xz |