Messages in this thread |  | | | From | Bartlomiej Zolnierkiewicz <> | | Subject | Re: ide_register_hw(): buggy code | | Date | Tue, 4 Mar 2008 21:57:22 +0100 |
| |
On Tuesday 04 March 2008, Peter Teoh wrote: > On Tue, Mar 4, 2008 at 6:29 AM, Bartlomiej Zolnierkiewicz > <bzolnier@gmail.com> wrote: > > > > Hi, > > > > > > On Monday 03 March 2008, Peter Teoh wrote: > > > On Sun, Mar 2, 2008 at 11:19 PM, Adrian Bunk <bunk@kernel.org> wrote: > > > > The Coverity checker spotted the following bogus change to > > > > ide_register_hw() in commit 9e016a719209d95338e314b46c3012cc7feaaeec: > > > > > > > > <-- snip --> > > > > > > > > ... > > > > + hwif = ide_deprecated_find_port(hw->io_ports[IDE_DATA_OFFSET]); > > > > + index = hwif->index; > > > > + if (hwif) > > > > + goto found; > > > > for (index = 0; index < MAX_HWIFS; index++) > > > > ... > > > > > > > > <-- snip --> > > > > > > > > It's impossible to reach the for() loop without Oopsing before. > > > > [ iff free hwif is not found (unlikely case) ] > > > > > > > > Can you either fix this for 2.6.25 or push your patch that removes > > > > ide_register_hw() for 2.6.25? > > > > > > > > > > My question is: > > > > > > a. why is "retry=1", and then the do while loop always end up the > > > loop being one round executed only? Why not just remove the while > > > loop entirely? > > > > the whole ide_register_hw() is already gone in IDE tree > > (these patches are scheduled for 2.6.26) > > > > > > > b. not sure if your statement above implied this, but checking for > > > hwif!=0 should be before index. ??? > > > > > > c. "index = hwif->index;" should not be there, but after "found". > > > Is that correct? > > > > Yes, could you please re-do your patch to contain: > > > > - only 'hwif->index' change > > - proper patch description > > - Signed-off-by: line > > > > so I could merge it? > > > Description: > > Relocating the index to come after finding the hwif pointer.
applied, thanks
|  |