sfc: Use separate hardware TX queues to select checksum generation
authorBen Hutchings <bhutchings@solarflare.com>
Mon, 1 Sep 2008 11:44:59 +0000 (12:44 +0100)
committerJeff Garzik <jgarzik@redhat.com>
Wed, 3 Sep 2008 13:53:42 +0000 (09:53 -0400)
commit60ac10658c2e234cf7bc27e0930e324c6c6fcf61
treeb16ee9efd385806755c6912492db43997c4f4b98
parent26c086771a8ad0a1a72699674fa712fe6aeacb02
sfc: Use separate hardware TX queues to select checksum generation

Checksum generation is an attribute of our hardware TX queues, not TX
descriptors.  We previously used a single queue and turned checksum
generation on or off as requested through ethtool.  However, this can
result in regenerating checksums in raw packets that should not be
modified.  We now create 2 hardware TX queues with checksum generation
on or off.  They are presented to the net core as one queue since it
does not know how to select between them.

The self-test verifies that a bad checksum is unaltered on the queue
with checksum generation off.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/sfc/efx.c
drivers/net/sfc/ethtool.c
drivers/net/sfc/falcon.c
drivers/net/sfc/net_driver.h
drivers/net/sfc/selftest.c
drivers/net/sfc/selftest.h
drivers/net/sfc/tx.c