Re: PATCH, IDE corruption, 2.4.18

Neil Conway
2002-05-05T01:54:19Z

Hi...

--- Mike Fedyk <mfedyk@matchmail.com> wrote: > On Sat, May 04, 2002 at
01:15:20PM +0100, Neil Conway wrote:
> > - byte stat;
> > + byte stat,unit;
>
> [snip]
>
> > #if defined(CONFIG_BLK_DEV_IDEDMA) && !defined(CONFIG_DMA_NONPCI)
> > - byte unit = (drive->select.b.unit & 0x01);
> > + unit = (drive->select.b.unit & 0x01);
>
> Why are you moving the init of "unit" out of that ifdef?

Basically to make it compile. I'm only moving the declaration, and
that's only because I need to abort the routine BEFORE the second line
of the ifdef switches off DMA on that unit. I did compile a version
with the ifdef split into two bits but I decided that was a little
messy. (It won't compile if my check goes in before the first line of
the ifdef as originally written as it declares a variable and C won't
let declarations follow plain code.)

> Can you see if this problem is still in 2.5 also?

I haven't got a 2.5.13 tree but I found 2.5.7 on a source browser
online and verified that, back then at least, ide-features.c was still
basically the same. Of course, the routines in between
ide_register_subdriver and ide_config_drive_speed might have been
different. If someone can look at the code-path between these two
routines in 2.5.13 to see if there is any check on whether or not the
hwgroup is busy (or simply whether or not DMA is in progress) that
would clear it up. I'll probably download 2.5.13 sometime soon anyway.

cheers