Andi Kleen wrote: > On Wed, Jan 09, 2008 at 10:41:59PM +0100, Stefan Richter wrote: >> However, this further obfuscates the fact that libata uses Linux' SCSI >> midlayer and highlevel. Which is a bad thing. For example, there are > > People are not interested in how libata is implemented internally. > They just want their SATA interfaces to work. > > Kconfig is also not an educational facility or high level > design description of the code, but a pragmatic tool to get the job > done. I did not talk about education or design decription. I did talk about appropriately showing what the Kconfig options do. Kconfig is the tool to configure the Linux build environment before building the program. In particular, we are talking about how to present the configuration of the Linux ATA component, which happens - to have a build-time dependence on the Linux SCSI midlayer and - to be not very useful at runtime if certain Linux SCSI highlevel components aren't present as well. The Kconfig menu layouts, prompts, and help texts are there to inform/ "educate"/ guide the user when configuring the build environment, with the goal that he safely and efficiently gets to a working software configuration. If some "internals" of the implementation are not entirely invisible to users at run-time, then we should provide information about them. Or change the implementation so that these internals become truly invisible at runtime use, if that is preferable, all things considered. Furthermore, people who use Kconfig are _not_ people who "just want their SATA interfaces to work". These are specifically people who need to or want to create an own configuration before build time, for what ever reason. /These/ are the people to which the Kconfig menus and texts must be tailored for. People who just want their SATA interfaces to work _and_ cannot or don't want to spend time with configuring the kernel build environment can be served to. We give them ready-made .config files or kernels. Or in short: Setting BLK_DEV_SD=y does not mean "make my disk work". It means "enable building one of the program parts which are necessary to make my disk work". And however hard you try, you can't transform it to truly take on the former meaning. Therefore better stay true to the actual meaning. -- Stefan Richter -=====-==--- ---= -=--= http://arcgraph.de/sr/ - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html