OpenCloudOS-Kernel/drivers/staging/slicoss
Vasiliy Kulikov 20caa14c59 staging: slicoss: use free_netdev(netdev) instead of kfree()
Freeing netdev without free_netdev() leads to net, tx leaks.
I might lead to dereferencing freed pointer.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

@@
struct net_device* dev;
@@

-kfree(dev)
+free_netdev(dev)

Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
Acked-by: Denis Kirjanov <dkirjanov@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-30 04:14:21 -07:00
..
Kconfig Staging: add Alacritech slicoss network driver 2008-10-10 15:31:07 -07:00
Makefile Staging: add Alacritech slicoss network driver 2008-10-10 15:31:07 -07:00
README staging: slicoss: update README 2009-04-17 11:06:31 -07:00
slic.h Staging: slicoss: Remove explicit arch dependencies 2010-08-31 11:52:28 -07:00
slichw.h Staging: slicoss: slichw.h cleanup 2009-04-03 14:53:08 -07:00
slicoss.c staging: slicoss: use free_netdev(netdev) instead of kfree() 2010-09-30 04:14:21 -07:00

README

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 availble 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@suse.de>
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.