Re: [RFT][PATCH] ide-disk.c: more write cache fixes

From: Rene Herman
Date: Thu May 13 2004 - 18:32:55 EST


Bartlomiej Zolnierkiewicz wrote:

Comments, suggestions, complains?

Yes, this works to stop it from complaining (on 6Y120P0). It comes up with write cache enabled, and hdparm -W0/-W1 work to disable/enable write cache as evidenced by the tiobench results. Not as evidenced by /proc/ide/hda/settings (drive->wcache) which is always 1 and which will probably confuse more users than just me -- I believe I saw hdparm just pushes a drive command through an ioctl?

Question though:

@@ -1678,8 +1683,12 @@ static void idedisk_setup (ide_drive_t *
#endif /* CONFIG_IDEDISK_MULTI_MODE */
}
drive->no_io_32bit = id->dword_io ? 1 : 0;
- if (drive->id->cfs_enable_2 & 0x3000)
- write_cache(drive, (id->cfs_enable_2 & 0x3000));
+
+ /* write cache enabled? */
+ if ((id->csfo & 1) || (id->cfs_enable_1 & (1 << 5)))
+ drive->wcache = 1;
+
+ write_cache(drive, 1);

write_cache() also sets drive->wcache (to the argument, 1 in this case) and you call that unconditionally, so the "if (foo) drive->wcache = 1" seems superfluous. If the idea indeed is to unconditionally enable write cache, it seems just

write_cache(drive, 1);

would be equivalent. Or if that wasn't the intention, maybe:

if (foo)
write_cache(drive, 1);

or if it should in fact be disabled if (!foo):

write_cache(drive, (id->csfo & 1) || (id->cfs_enable_1 & (1 << 5)));

or ...

Ignore me if I completely missed the point, just looks odd.

Rene.
-
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/