[PATCH] [POWERPC] Fix viodasd driver with scatterlist debug

STALE6802d

3 messages, 2 authors, 2008-03-12 · open the first message on its own page

[PATCH] [POWERPC] Fix viodasd driver with scatterlist debug

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2008-03-12 06:23:56

The iSeries viodasd drivers does some very strange things with
scatterlists, one of these causing a BUG_ON to trigger when
scatterlist debugging is enabled due to initializing the
scatterlist with memset instead of sg_init_table().

This fixes it by using sg_init_table(). The rest of the stuff
it does to that poor list is still pretty awful but it will work.

I may look into fixing things in a nicer way some other time.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

 drivers/block/viodasd.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
--- linux-work.orig/drivers/block/viodasd.c	2008-03-12 10:25:55.000000000 +1100
+++ linux-work/drivers/block/viodasd.c	2008-03-12 10:39:38.000000000 +1100
@@ -528,8 +528,7 @@ static int block_event_to_scatterlist(co
 		numsg = VIOMAXBLOCKDMA;
 
 	*total_len = 0;
-	memset(sg, 0, sizeof(sg[0]) * VIOMAXBLOCKDMA);
-
+	sg_init_table(sg, VIOMAXBLOCKDMA);
 	for (i = 0; (i < numsg) && (rw_data->dma_info[i].len > 0); ++i) {
 		sg_dma_address(&sg[i]) = rw_data->dma_info[i].token;
 		sg_dma_len(&sg[i]) = rw_data->dma_info[i].len;

Re: [PATCH] [POWERPC] Fix viodasd driver with scatterlist debug

From: Stephen Rothwell <hidden>
Date: 2008-03-12 06:45:29

Hi Ben,

On Wed, 12 Mar 2008 17:23:56 +1100 Benjamin Herrenschmidt [off-list ref] wrote:
The iSeries viodasd drivers does some very strange things with
scatterlists, one of these causing a BUG_ON to trigger when
scatterlist debugging is enabled due to initializing the
scatterlist with memset instead of sg_init_table().

This fixes it by using sg_init_table(). The rest of the stuff
it does to that poor list is still pretty awful but it will work.
Presumably this is also needed in 2.6.24.xx

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

Re: [PATCH] [POWERPC] Fix viodasd driver with scatterlist debug

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2008-03-12 06:53:26

On Wed, 2008-03-12 at 17:44 +1100, Stephen Rothwell wrote:
Hi Ben,

On Wed, 12 Mar 2008 17:23:56 +1100 Benjamin Herrenschmidt [off-list ref] wrote:
quoted
The iSeries viodasd drivers does some very strange things with
scatterlists, one of these causing a BUG_ON to trigger when
scatterlist debugging is enabled due to initializing the
scatterlist with memset instead of sg_init_table().

This fixes it by using sg_init_table(). The rest of the stuff
it does to that poor list is still pretty awful but it will work.
Presumably this is also needed in 2.6.24.xx
Possibly, though the problem only occurs when enabling scatterlist
debug, which distros don't do. Is it worth putting in a stable release ?

If yes, I'll submit it as soon as it hits upstream.

Cheers,
Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help