Christoph, I like it, and have no real complaints. As familiar as this looks, there were a couple of conventions in the FC transport that I thought should have carried over here. Namely, I saw not all attributes being the same, thus I created 3 categories of attributes: Private: These are attributes fully owned by the transport. The LLDD does not directly access them, or participate in the sysfs calls. LLDD interaction is strictly indirect via transport functions. Fixed: These attributes, once set, are not expected to change. The LLDD does set these values directly, but should only do so at initialization. The sysfs functions will be handled solely by the transport w/ no interaction with the LLDD. Dynamic (Normal): Values can change. Sysfs functions utilize LLDD to get/set values. I expect that the SAS transport has much the same categories, and it would be beneficial to indicate which category the different attributes fall into. This can be as simple as comments, grouping, or name prefixes. Also, I see your enums set explicit values. Just a caution. When I did the FC transport, there were cases where I specifically did not use specification-specific values, as the transport was a subset or extension of the spec. This made anyone interacting with the transport realize that this area was not just a reincarnation of the spec (plus, spec writers sometimes do stupid things). -- james s - : 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