lkml.org 
[lkml]   [2003]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Fix SMP support on 3c527 net driver
	Hi Manfred,

Manfred Spraul wrote:
> Additionally, you must replace the sleep_on calls with wait_event, or an
> open-coded wait queue: sleep_on is racy, it only works with cli().

Oh, I didn't no that..

> IMHO the right way to fix cli() is
> - add a single spinlock to the driver or the device structure. Do not
> forget the spin_lock_init().
> - replace cli/sti with spin_lock_irqsave/spin_unlock_irqsave.

Yes.

> - Additionally acquire the spinlock in every interrupt handler (cli()
> stops all interrupts, spinlocks only stop interrupt on the current cpu).
> - check if there were recursive cli() calls. Fix them.
> - replace all sleep_on calls with wait queue calls.
> - check if there are any kmalloc or schedule calls in the area now under
> the spinlock, and reorganize the code.

But doesn't wait_queue call schedule()?

> And please add a changelog entry that code was converted without testing.

Ok.

Thanks for your review, will work on those.

Felipe
--
It's most certainly GNU/Linux, not Linux. Read more at
http://www.gnu.org/gnu/why-gnu-linux.html

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:48    [W:0.029 / U:1.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site