* [PATCH 2.5.54] UPDATE hermes: serialization fixes
@ 2003-01-03 20:50 Stephen Evanchik
2003-01-04 5:38 ` David Gibson
0 siblings, 1 reply; 2+ messages in thread
From: Stephen Evanchik @ 2003-01-03 20:50 UTC (permalink / raw)
To: linux-kernel; +Cc: hermes
This fixes "Error -110 writing Tx descriptor to BAP" bug as referenced in David Gibson's README.
As per a suggestion, I've moved the spin_lock/unlock to hermes_bap_seek(). I'm currently running with
this module and it's working nicely.
As always, any comments are appreciated. Patches can be always downloaded from here:
http://www.clarkson.edu/~evanchsa/software/kernel/patches
Stephen Evanchik
--- linux-2.5.54/drivers/net/wireless/hermes.h 2003-01-01 22:21:02.000000000 -0500
+++ linux-2.5.54-devel/drivers/net/wireless/hermes.h 2003-01-03 15:32:33.000000000 -0500
@@ -288,6 +288,9 @@
u16 inten; /* Which interrupts should be enabled? */
+ /* Lock used in hermes_bap_seek */
+ spinlock_t baplock;
+
#ifdef HERMES_DEBUG_BUFFER
struct hermes_debug_entry dbuf[HERMES_DEBUG_BUFSIZE];
unsigned long dbufp;
--- linux-2.5.54/drivers/net/wireless/hermes.c 2003-01-01 22:21:13.000000000 -0500
+++ linux-2.5.54-devel/drivers/net/wireless/hermes.c 2003-01-03 15:34:23.000000000 -0500
@@ -342,11 +342,15 @@
int oreg = bap ? HERMES_OFFSET1 : HERMES_OFFSET0;
int k;
u16 reg;
+ unsigned long flags;
/* Paranoia.. */
if ( (offset > HERMES_BAP_OFFSET_MAX) || (offset % 2) )
return -EINVAL;
+ /* Without it, network connection errors occur.. */
+ spin_lock_irqsave(&(hw->baplock), flags);
+
k = HERMES_BAP_BUSY_TIMEOUT;
reg = hermes_read_reg(hw, oreg);
while ((reg & HERMES_OFFSET_BUSY) && k) {
@@ -368,6 +372,8 @@
}
#endif
+ spin_unlock_irqrestore(&(hw->baplock), flags);
+
if (reg & HERMES_OFFSET_BUSY)
return -ETIMEDOUT;
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH 2.5.54] UPDATE hermes: serialization fixes
2003-01-03 20:50 [PATCH 2.5.54] UPDATE hermes: serialization fixes Stephen Evanchik
@ 2003-01-04 5:38 ` David Gibson
0 siblings, 0 replies; 2+ messages in thread
From: David Gibson @ 2003-01-04 5:38 UTC (permalink / raw)
To: Stephen Evanchik; +Cc: linux-kernel
On Fri, Jan 03, 2003 at 03:50:55PM -0500, Stephen Evanchik wrote:
> This fixes "Error -110 writing Tx descriptor to BAP" bug as referenced in David Gibson's README.
>
> As per a suggestion, I've moved the spin_lock/unlock to hermes_bap_seek(). I'm currently running with
> this module and it's working nicely.
>
> As always, any comments are appreciated. Patches can be always downloaded from here:
I don't see how this can make any difference on the 0.13 and later
versions of the driver (which is in 2.5), since all BAP operations are
already serialized by the lock in the orinoco_private structure.
--
David Gibson | For every complex problem there is a
david@gibson.dropbear.id.au | solution which is simple, neat and
| wrong.
http://www.ozlabs.org/people/dgibson
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-01-04 5:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-01-03 20:50 [PATCH 2.5.54] UPDATE hermes: serialization fixes Stephen Evanchik
2003-01-04 5:38 ` David Gibson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox