* Re: MTD CVS update: 'mtd/kernel pmc551.c'
[not found] <E13hCjo-0006JB-00@infradead.org>
@ 2000-10-05 15:22 ` David Woodhouse
2000-10-06 23:35 ` cfi_amdext_sync, cfi_intelext_sync Alice Hennessy
0 siblings, 1 reply; 3+ messages in thread
From: David Woodhouse @ 2000-10-05 15:22 UTC (permalink / raw)
To: bjorn; +Cc: mtd
bjorn@pobox.com said:
> The egcs-2.91.66 optimiser gets confused in pmc551.c:init_pmc551() if
> PCI support is disabled in the kernel config.
It shouldn't be built if !CONFIG_PCI. Config.in doesn't let you enable it.
P'raps we should do something similar for the standalone Makefile.
--
dwmw2
To unsubscribe, send "unsubscribe mtd" to majordomo@infradead.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* cfi_amdext_sync, cfi_intelext_sync
2000-10-05 15:22 ` MTD CVS update: 'mtd/kernel pmc551.c' David Woodhouse
@ 2000-10-06 23:35 ` Alice Hennessy
2000-10-07 9:57 ` David Woodhouse
0 siblings, 1 reply; 3+ messages in thread
From: Alice Hennessy @ 2000-10-06 23:35 UTC (permalink / raw)
To: David Woodhouse; +Cc: mtd, ahennessy
Hi,
Found a bug in cfi_cmdset_0001.c and cfi_cmdset_0002.c in functions
cfi_intelext_sync and cfi_amdext_sync respectively. The call to
remove_wait_queue is missing after the "add_wait_queue;spin_unlock_bh;
schedule" sequence in the default case.
The gory details: Our test caused erase and sync to be called
concurrently. The sync code sees the chip state as FL_ERASING and
correctly calls add_wait_queue. The problem is that remove_wait_queue is
never called after the schedule. This causes wait's task_list to be added
to chip->wq's task_list several times which results in an incorrect circular
list. The final outcome is a hang when the erase logic calls wake_up which
ends up in an infinite loop running through chip->wq's task_list. A nice
touch is that we are in spin_lock_bh so the system hangs as well.
If you agree, should I check in the fix?
Alice
To unsubscribe, send "unsubscribe mtd" to majordomo@infradead.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: cfi_amdext_sync, cfi_intelext_sync
2000-10-06 23:35 ` cfi_amdext_sync, cfi_intelext_sync Alice Hennessy
@ 2000-10-07 9:57 ` David Woodhouse
0 siblings, 0 replies; 3+ messages in thread
From: David Woodhouse @ 2000-10-07 9:57 UTC (permalink / raw)
To: Alice Hennessy; +Cc: mtd
On Fri, 6 Oct 2000, Alice Hennessy wrote:
> Hi,
>
> Found a bug in cfi_cmdset_0001.c and cfi_cmdset_0002.c in functions
> cfi_intelext_sync and cfi_amdext_sync respectively. The call to
> remove_wait_queue is missing after the "add_wait_queue;spin_unlock_bh;
> schedule" sequence in the default case.
Doh! Well spotted.
> A nice touch is that we are in spin_lock_bh so the system hangs as well.
Thinks.... it's too early in the morning for me to decide whether it's
safe to drop the lock _before_ calling wake_up(). Probably.
> If you agree, should I check in the fix?
Yes please.
--
dwmw2
To unsubscribe, send "unsubscribe mtd" to majordomo@infradead.org
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2000-10-07 9:57 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <E13hCjo-0006JB-00@infradead.org>
2000-10-05 15:22 ` MTD CVS update: 'mtd/kernel pmc551.c' David Woodhouse
2000-10-06 23:35 ` cfi_amdext_sync, cfi_intelext_sync Alice Hennessy
2000-10-07 9:57 ` David Woodhouse
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox