[ added Jens to cc: ] Hi, On Saturday 10 March 2007, Guido Diepen wrote: > Hi Sergey, > > > Is the partition table correct? Maybe the partition extends beyond > > the end of physical disk for some reason, and when the kernel tries to > > access last blocks of the partition, it actually tries to read sectors > > beyond the actual drive capacity, which fails and exposes broken error > > handling in the Promise IDE driver. > > > > I have added the linux-ide mailing list to Cc: - problems related to > > IDE/ATA drivers (both old IDE, which you are using currently, and > > newer libata) should be discussed there. > > Last night I copied all data on the /dev/hdg2 partition to other partitions, > removed the /dev/hdg2 partition and recreated it. Currently everything works > flawless !!! Thanks for testing this (and reporting the bug in the first place). Also big thanks to Sergey for digging out the source of the issue. > Apparently there is a bug in the promise IDE pdc202xx_new.c driver :) IDE error recovery code needs improvements (people are working at it) but there is no wonder that it failed miserably first in DMA mode and later during PIO retries - it just couldn't read the sector which doesn't exist. Probably the final steps of error recovery procedure were unsuccessful because it is using the older method for putting the drive into the "good" idle state which confuses newer disks (there is a patch - to be merged - from Suleiman Souhlal addressing this). However it seems that the root source of the problem was that IDE subsystem got the request for sector outside the valid sector range and it should _never_ happen for requests originating from the block layer (a lot of code - not only in the IDE subsystem - assumes this)... Thanks, Bart - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html