[PATCH] Fix locking in gianfar
authorAndy Fleming <afleming@freescale.com>
Thu, 20 Apr 2006 21:44:29 +0000 (16:44 -0500)
committerJeff Garzik <jeff@garzik.org>
Thu, 20 Apr 2006 21:55:06 +0000 (17:55 -0400)
commitfef6108d4556917c45cd9ba397c1c7597f3990e1
treef35566dd3ddbda7cc84fc8a03aa3aebeea7dc746
parentf18b95c3e2ab0f75b23a5aabab0bc8f99bd6bbf3
[PATCH] Fix locking in gianfar

This patch fixes several bugs in the gianfar driver, including a major one
where spinlocks were horribly broken:

* Split gianfar locks into two types: TX and RX
* Made it so gfar_start() now clears RHALT
* Fixed a bug where calling gfar_start_xmit() with interrupts off would
corrupt the interrupt state
* Fixed a bug where a frame could potentially arrive, and never be handled
(if no more frames arrived
* Fixed a bug where the rx_work_limit would never be observed by the rx
completion code
* Fixed a bug where the interrupt handlers were not actually protected by
their spinlocks

Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/gianfar.c
drivers/net/gianfar.h
drivers/net/gianfar_ethtool.c
drivers/net/gianfar_sysfs.c