Re: [PATCH] Re: [bug] ata subsystem related crash with latest -git

From: Jeff Garzik
Date: Thu Oct 18 2007 - 07:03:21 EST


Ingo Molnar wrote:
* Jeff Garzik <jeff@xxxxxxxxxx> wrote:

Tomo and I agreed to kill sg_last() a few days ago anyways, so this is perfectly fine with me.
Yep, the [attached] patch that kills ata_sg_is_last() is working here on both machines that were previously croaking.

It would be nice to get pdc_adma, sata_sil24 and ipr it-works test done, but IMO the patch is pretty straightforward and should be OK.

just a quick question: i have Jens's workarounds applied right now (see patch below). Am i now crash/corruption-safe, or do i need your patch too? And once your patch [and the other sg_*() patches] are upstream i dont need the workaround anymore, correct?

You need my patch if and only if you use one of the drivers touched by the patch. ata_sg_is_last() was a driver helper function, so my fix never really touched core code.

I never had to apply the changes you included, to fix problems here.

And looking at those changes...
- q->max_phys_segments = max_segments;
+ q->max_phys_segments = max_segments - 1;
...
-#define SCSI_MAX_SG_SEGMENTS 128
+#define SCSI_MAX_SG_SEGMENTS 129

I wonder if libata should be doing

blk_queue_max_phys_segments(q, q->max_phys_segments - 1)

to account for the pad entry that libata owns.

Jeff



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