On Mon, 2010-03-29 at 18:22 -0300, Herton Ronaldo Krzesinski wrote: > Em Seg 29 Mar 2010, às 17:49:08, Herton Ronaldo Krzesinski escreveu: > > Em Seg 29 Mar 2010, às 17:36:30, Herton Ronaldo Krzesinski escreveu: > > > Em Dom 28 Mar 2010, às 12:25:20, James Bottomley escreveu: > > > > On Fri, 2010-03-26 at 20:05 -0300, Herton Ronaldo Krzesinski wrote: > > > > <snip> > > > > > > This is both nasty and not really a fix: the overrun buf is still > > > > mapped many times on the reset path and only ever unmapped once, which > > > > is still an unfixed bug in this code. I think the map needs to be moved > > > > out of AscInitMicroCodeVar() to somewhere in here. > > > > > > I didn't want to do this since I think there will be much changes and I can't > > > test properly as I don't have the hardware (also may be too much for what > > > looks like a legacy driver/hardware). But I aggree this if is ugly and not > > > unmapping when needed on reset. What I thought can be better is this, to fix > > > error handling also on AscInitMicroCodeVar then: > > > > Sorry the diff had some typos (didn't test it), but was only for the idea > > Damn, and in the diff I also forgot about dma unmap on scsi_add_host error... > please consider version below, also compile tested: > > diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c > index 9201afe..43289e8 100644 > --- a/drivers/scsi/advansys.c > +++ b/drivers/scsi/advansys.c > @@ -460,6 +460,7 @@ typedef struct asc_risc_sg_list_q { > #define ASC_IERR_BIST_PRE_TEST 0x0800 /* BIST pre-test error */ > #define ASC_IERR_BIST_RAM_TEST 0x1000 /* BIST RAM test error */ > #define ASC_IERR_BAD_CHIPTYPE 0x2000 /* Invalid chip_type setting */ > +#define ASC_IERR_DMA_MAP_SINGLE 0x4000 /* Error with dma_map_single */ You don't actually need another flag for this. asc_board is in shost_priv and, as such, is zero initialised, so you can rely on overrun_dma being NULL unless it's mapped on a narrow board. James -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html