Messages in this thread | | | Date | Thu, 25 Jun 2009 03:09:38 -0700 (PDT) | Subject | Re: [patch 2/6] ide: fix ide_kill_rq() for special ide-{floppy,tape} driver requests | From | David Miller <> |
| |
From: Borislav Petkov <petkovbb@googlemail.com> Date: Wed, 24 Jun 2009 19:44:11 +0200
> On Wed, Jun 24, 2009 at 03:39:09AM -0700, David Miller wrote: >> From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> >> Date: Wed, 24 Jun 2009 12:09:53 +0200 >> >> > The obscure reasons is just the fact that both ide-floppy and ide-tape >> > had a they own duplicated/buggy request completion routines. >> > >> > While they were being unified the whole bunch of similar class of bugs >> > were fixed so I agree that there may still be more issues to deal with >> > there. >> >> I see, the ->pc_callback() of these things set rq->errors and then >> ide_pc_intr() happily overrides whatever was set there, either on it's >> own or via ide_complete_rq(). >> >> I'll look over this some more while I wait for the testing results >> from Borislav. > > Ok, let's see now, I did some testing but can't seem to hit that > particular path because it is taken relatively rarely - it can be > reached from start_request() and ide_atapi_error() via ide_error for > ide-floppy and ide-tape. > > If my code staring doesn't mislead me, the start_request()-one has to > happen during an IDE reset operation, while we're polling for reset > completion _and_ when drive->failures has reached drive->max_failures > since this is the only site the drive->failures counter is increased. > > The ide_atapi_error() cannot happen because (!blk_fs_request(rq)) > requests are being completed in ide_error() with the respective error > status. > > It is possible that I've missed something so feel free to correct me > and/or suggest a different testing approach.
Ok, thanks Borislav.
My intention is to apply patches #2 and #3, thanks everyone!
| |