Re: Linux 2.4.21-rc3 : IDE pb on Alpha

Willy Tarreau (willy@w.ods.org)
Wed, 28 May 2003 02:38:51 +0200


Hi !

On Tue, May 27, 2003 at 06:04:03PM +0400, Ivan Kokshaysky wrote:
> Can you (and Jason) try this patch with CONFIG_IDEDMA_PCI_AUTO=y?

Well, I tried to reboot (blindly, only with a keyboard attached) on the
new kernel, but it behave the same way : "boot -fl 1" (1 is the new kernel)
does a few disk accesses to load the kernel, then hangs, while "0" boots
correctly, so I'm sure my keyboard is correctly plugged and I don't mistype.

Sorry Ivan for such a miserable report, but I couldn't plug either a VT or a
VGA display. I will retry -rc5 (or -rc6) ASAP, but for now I'm going to bed.

Marcelo, the AHA29160 on this system (alpha) spurts lots of debug messages
"blk: queue 0xffff..." at boot with the version in -rc3. Justin pointed me
to drivers/block/ll_rw_blk.c:268 which is responsible for the message. It's
marked as debug, but no KERN_XXX prefix is used. So I think that either
KERN_DEBUG should be added, or the message should simply disappear, since it
sends garbage on the screen which makes SCSI detection a bit hard to read.

Here are two quickly written, completely untested patch proposals.
Please note that this code has not changed since 2.4.20 (which I never tested
on this machine).

Regards,
Willy

######## the most correct one ? ########

--- ./drivers/block/ll_rw_blk.c Fri May 9 21:33:10 2003
+++ /tmp/ll_rw_blk.c-debug Wed May 28 02:33:05 2003
@@ -265,7 +265,7 @@
*/
if (dma_addr != BLK_BOUNCE_HIGH && q != old_q) {
old_q = q;
- printk("blk: queue %p, ", q);
+ printk(KERN_DEBUG "blk: queue %p, ", q);
if (dma_addr == BLK_BOUNCE_ANY)
printk("no I/O memory limit\n");
else

##### this one hides the message. Note that it may lead to a warning
##### with mb defined but not used !

--- ./drivers/block/ll_rw_blk.c Fri May 9 21:33:10 2003
+++ /tmp/ll_rw_blk.c-nomsg Wed May 28 02:32:50 2003
@@ -265,12 +265,14 @@
*/
if (dma_addr != BLK_BOUNCE_HIGH && q != old_q) {
old_q = q;
+#ifdef BLK_QUEUE_DEBUG
printk("blk: queue %p, ", q);
if (dma_addr == BLK_BOUNCE_ANY)
printk("no I/O memory limit\n");
else
printk("I/O limit %luMb (mask 0x%Lx)\n", mb,
(long long) dma_addr);
+#endif
}

q->bounce_pfn = bounce_pfn;

-
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/