linux/drivers/staging/slicoss
Peter Huewe 97b3e0ed1d staging/slicoss: Use ether_crc for mac hash calculation
Instead of performing the hash calculation for the mac address by ourself, we
can simply reuse ether_crc and shift only the result according to our
needs.
The code was tested against the previous implementation by verifying both
implementations against each other in userspace for 16200000000 different
mac addresses, changing the vendor bits of the mac address first.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-03-11 09:22:44 -07:00
..
Kconfig staging: slicoss depends on NET 2011-11-18 15:00:48 -08:00
Makefile
README staging: clean up Greg's email address in some TODO files 2012-02-15 14:45:40 -08:00
slic.h staging: slicoss: Fix space-related checkpatch.pl warnings 2013-01-17 13:53:06 -08:00
slichw.h staging: slicoss: Fix space-related checkpatch.pl warnings 2013-01-17 13:53:06 -08:00
slicoss.c staging/slicoss: Use ether_crc for mac hash calculation 2013-03-11 09:22:44 -07:00

This driver is supposed to support:

	Mojave cards (single port PCI Gigabit) both copper and fiber
	Oasis cards (single and dual port PCI-x Gigabit) copper and fiber
	Kalahari cards (dual and quad port PCI-e Gigabit) copper and fiber

The driver was actually tested on Oasis and Kalahari cards.

TODO:
	- move firmware loading to request_firmware()
	- remove direct memory access of structures
	- any remaining sparse and checkpatch.pl warnings

	- use net_device_ops
	- use dev->stats rather than adapter->stats
	- don't cast netdev_priv it is already void
	- use compare_ether_addr
	- GET RID OF MACROS
	- work on all architectures
	   - without CONFIG_X86_64 confusion
	   - do 64 bit correctly
	   - don't depend on order of union
	- get rid of ASSERT(), use BUG() instead but only where necessary
	  looks like most aren't really useful
	- no new SIOCDEVPRIVATE ioctl allowed
	- don't use module_param for configuring interrupt mitigation
	  use ethtool instead
	- reorder code to elminate use of forward declarations
	- don't keep private linked list of drivers.
	- remove all the gratiutous debug infrastructure
	- use PCI_DEVICE()
	- do ethtool correctly using ethtool_ops
	- NAPI?
	- wasted overhead of extra stats
	- state variables for things that are
	  easily available and shouldn't be kept in card structure, cardnum, ...
	  slotnumber, events, ...
	- get rid of slic_spinlock wrapper
	- volatile == bad design => bad code
	- locking too fine grained, not designed just throw more locks
	  at problem


Please send patches to:
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>
and Cc: Lior Dotan <liodot@gmail.com> and Christopher Harrer
<charrer@alacritech.com> as well as they are also able to test out any
changes.