Allow host controllers to store private data per device.
Signed-off-by: Kristen Carlson Accardi <[email protected]>
---
include/linux/libata.h | 3 +++
1 file changed, 3 insertions(+)
Index: libata-dev/include/linux/libata.h
===================================================================
--- libata-dev.orig/include/linux/libata.h 2007-09-24 16:13:33.000000000 -0700
+++ libata-dev/include/linux/libata.h 2007-09-24 16:15:24.000000000 -0700
@@ -474,6 +474,9 @@ struct ata_device {
/* error history */
struct ata_ering ering;
int spdn_cnt;
+
+ /* controller driver per device private data */
+ void *private_data;
};
/* Offset into struct ata_device. Fields above it are maintained
Kristen Carlson Accardi wrote:
> Allow host controllers to store private data per device.
>
> Signed-off-by: Kristen Carlson Accardi <[email protected]>
>
> ---
> include/linux/libata.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> Index: libata-dev/include/linux/libata.h
> ===================================================================
> --- libata-dev.orig/include/linux/libata.h 2007-09-24 16:13:33.000000000 -0700
> +++ libata-dev/include/linux/libata.h 2007-09-24 16:15:24.000000000 -0700
> @@ -474,6 +474,9 @@ struct ata_device {
> /* error history */
> struct ata_ering ering;
> int spdn_cnt;
> +
> + /* controller driver per device private data */
> + void *private_data;
I don't have any objections to this per se... a lot of other subsystems
do this too, and I can certainly see a potential need.
But what about object lifetimes? If a controller is hot-unplugged, does
anyone need notification to destroy dynamic objects, or does controller
cleanup take care of that? If a device is unplugged, where should a
controller driver do its ->private_data cleanup?
This is /not/ a NAK, just a request to make clear the lifetime rules and
procedures...
Jeff
Sorry for the delay in responding, I was on vacation.
On Tue, 02 Oct 2007 11:07:30 -0400
Jeff Garzik <[email protected]> wrote:
> Kristen Carlson Accardi wrote:
> > Allow host controllers to store private data per device.
> >
> > Signed-off-by: Kristen Carlson Accardi <[email protected]>
> >
> > ---
> > include/linux/libata.h | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > Index: libata-dev/include/linux/libata.h
> > ===================================================================
> > --- libata-dev.orig/include/linux/libata.h 2007-09-24 16:13:33.000000000 -0700
> > +++ libata-dev/include/linux/libata.h 2007-09-24 16:15:24.000000000 -0700
> > @@ -474,6 +474,9 @@ struct ata_device {
> > /* error history */
> > struct ata_ering ering;
> > int spdn_cnt;
> > +
> > + /* controller driver per device private data */
> > + void *private_data;
>
> I don't have any objections to this per se... a lot of other subsystems
> do this too, and I can certainly see a potential need.
>
> But what about object lifetimes? If a controller is hot-unplugged, does
> anyone need notification to destroy dynamic objects, or does controller
> cleanup take care of that? If a device is unplugged, where should a
> controller driver do its ->private_data cleanup?
>
> This is /not/ a NAK, just a request to make clear the lifetime rules and
> procedures...
>
> Jeff
>
I'll do this - and meanwhile go ahead and ignore this patch. I've decided
to submit it as part of a series where I actually use the private data,
so we can review it in context.
Thanks,
Kristen