Re: [PATCH] ide_dma_speed() fixes

From: Sergei Shtylyov
Date: Mon May 15 2006 - 09:45:00 EST


Hello.

Andrew Morton wrote:

ide_dma_speed() fails to actually honor the IDE drivers' mode support masks) because of the bogus checks -- thus, selecting the DMA transfer mode that the driver explicitly refuses to support is possible. Additionally, there is no check for validity of the UltraDMA mode data in the drive ID, and the function is misdocumented.

drivers/ide/ide-lib.c: In function `ide_dma_speed':
drivers/ide/ide-lib.c:86: warning: `ultra_mask' might be used uninitialized in this function

Looks like a real bug to me - it depends up on the values of `mode' and
id->field_value.

Anyway, I'll drop it, please review and fix. I assume that warning was
occurring for you as well - please spend more time over these things. Especially when working on IDE, where bugs are slow to show themselves and
have particularly bad consequences.

That's what gcc thinks. The code is 100% correct -- it will never reach the switch statement with mode > 0 (in which case ultra_mask isn't used) and ultra_mask unitialized. I may add an explicit initializer in the declaration if you like...

MBR, Sergei
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/