igb: Revert support for build_skb in igb
authorAlexander Duyck <alexander.h.duyck@intel.com>
Wed, 17 Apr 2013 20:41:04 +0000 (20:41 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Apr 2013 18:52:18 +0000 (14:52 -0400)
commitf9d40f6a9921cc7d9385f64362314054e22152bd
tree7b392dd69c8b7d6702d169a22b947f7803a220bb
parent0fecd7504614b0bc98b79e31daffec040ec4e49f
igb: Revert support for build_skb in igb

This patch actually reverts:
igb: Support using build_skb in the case that jumbo frames are disabled

The reason for reverting this patch is that it can lead to data corruption.
The following flow was pointed out by Ben Hutchings:

1. skb is forwarded to another device
2. Packet headers are modified and it's put into a queue
3. Second packet is received into the other half of this page
4. Page cannot be reused, so is DMA-unmapped
5. The DMA mapping was non-coherent, so unmap copies or invalidates
cache

The headers added in step 2 get trashed in step 5.

Reported-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/igb/igb.h
drivers/net/ethernet/intel/igb/igb_main.c