2007-09-24 23:28:36

by Kristen Carlson Accardi

[permalink] [raw]
Subject: [patch] ata: libata: add per device private data

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


2007-10-02 15:07:42

by Jeff Garzik

[permalink] [raw]
Subject: Re: [patch] ata: libata: add per device private data

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



2007-10-09 17:59:18

by Kristen Carlson Accardi

[permalink] [raw]
Subject: Re: [patch] ata: libata: add per device private data

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