Hi David, On Fri, Jan 27, 2012 at 3:20 PM, David Herrmann <dh.herrmann@xxxxxxxxxxxxxx> wrote: > Hi Andrei > > On Fri, Jan 27, 2012 at 6:01 PM, Andrei Emeltchenko > <andrei.emeltchenko.news@xxxxxxxxx> wrote: >> Hi David, >> >>> This avoids using the dev_set/get_drvdata() functions to retrieve a >>> pointer to our own structure. We can use simple pointer arithmetic here. >>> The drvdata field is actually not needed by any other code-path but this >>> makes the code more consistent with hci_dev. >>> >>> Signed-off-by: David Herrmann <dh.herrmann@xxxxxxxxxxxxxx> >>> --- >>> include/net/bluetooth/hci_core.h | 1 + >>> net/bluetooth/hci_sysfs.c | 10 ++++------ >>> 2 files changed, 5 insertions(+), 6 deletions(-) >>> >>> diff --git a/include/net/bluetooth/hci_core.h >>> b/include/net/bluetooth/hci_core.h >>> index 9780f42..8784da1 100644 >>> --- a/include/net/bluetooth/hci_core.h >>> +++ b/include/net/bluetooth/hci_core.h >>> @@ -612,6 +612,7 @@ static inline struct hci_dev *hci_dev_hold(struct >>> hci_dev *d) >>> #define hci_dev_unlock(d) mutex_unlock(&d->lock) >>> >>> #define to_hci_dev(d) container_of(d, struct hci_dev, dev) >>> +#define to_hci_conn(c) container_of(c, struct hci_conn, dev) >>> >>> static inline void *hci_get_drvdata(struct hci_dev *hdev) >>> { >>> diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c >>> index 2a0243a..17e6cd4 100644 >>> --- a/net/bluetooth/hci_sysfs.c >>> +++ b/net/bluetooth/hci_sysfs.c >>> @@ -33,19 +33,19 @@ static inline char *link_typetostr(int type) >>> >>> static ssize_t show_link_type(struct device *dev, struct device_attribute >>> *attr, char *buf) >>> { >>> - struct hci_conn *conn = dev_get_drvdata(dev); >>> + struct hci_conn *conn = to_hci_conn(dev); >> >> I personally think it was more readable before. > > I didn't write it to make it more readable but to make it conform to > other subsystems using the drvdata field. I think using a pointer in a > structure if we could also use container_of is a waste of memory. > Anyway, in this case we will keep the drvdata field anyway as we > cannot remove it so I have no objections if you drop this patch. > Personally I'd prefer to_hci_conn, though, as we are no driver but a > bus so "get_drvdata" sounds not right here. > > Regards > David > >> --Andrei Using container_of is pretty much common in the kernel. Maybe the macro names can be better? I think the series is an improvement but Marcel is the best one to rule on this. Regards, -- Ulisses Furquim ProFUSION embedded systems http://profusion.mobi Mobile: +55 19 9250 0942 Skype: ulissesffs -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html