[PATCH] ibmveth fix failed addbuf
authorSantiago Leon <santil@us.ibm.com>
Wed, 26 Oct 2005 16:47:23 +0000 (10:47 -0600)
committerJeff Garzik <jgarzik@pobox.com>
Fri, 28 Oct 2005 20:07:31 +0000 (16:07 -0400)
This patch fixes a bug that happens when the hypervisor can't add a
buffer.  The old code wrote IBM_VETH_INVALID_MAP into the free_map
array, so next time the index was used, a ibmveth_assert() caught it and
called BUG().  The patch writes the right value into the free_map array
so that the index can be reused.

Signed-off-by: Santiago Leon <santil@us.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/ibmveth.c

index 987bcba..f581952 100644 (file)
@@ -237,7 +237,7 @@ static void ibmveth_replenish_buffer_pool(struct ibmveth_adapter *adapter, struc
                lpar_rc = h_add_logical_lan_buffer(adapter->vdev->unit_address, desc.desc);
                    
                if(lpar_rc != H_Success) {
-                       pool->free_map[free_index] = IBM_VETH_INVALID_MAP;
+                       pool->free_map[free_index] = index;
                        pool->skbuff[index] = NULL;
                        pool->consumer_index--;
                        dma_unmap_single(&adapter->vdev->dev,