[ofa-general] Re: [PATCH] infiniband: ehca: remove driver_data direct access of struct device
Hoang-Nam Nguyen
HNGUYEN at de.ibm.com
Mon May 4 22:13:16 PDT 2009
Hi,
This patch looks fine to me. Thanks!
Nam
Greg Kroah-Hartman <gregkh at suse.de> wrote on 04.05.2009 22:00:22:
> [image removed]
>
> [PATCH] infiniband: ehca: remove driver_data direct access of struct
device
>
> Greg Kroah-Hartman
>
> to:
>
> Sean Hefty, Roland Dreier, Hal Rosenstock, Christoph Raisch, Hoang-Nam
Nguyen
>
> 04.05.2009 22:05
>
> Cc:
>
> general, Greg KH
>
> From: Greg Kroah-Hartman <gregkh at suse.de>
>
> In the near future, the driver core is going to not allow direct access
> to the driver_data pointer in struct device. Instead, the functions
> dev_get_drvdata() and dev_set_drvdata() should be used. These functions
> have been around since the beginning, so are backwards compatible with
> all older kernel versions.
>
> Cc: Sean Hefty <sean.hefty at intel.com>
> Cc: Roland Dreier <rolandd at cisco.com>
> Cc: Hal Rosenstock <hal.rosenstock at gmail.com>
> Cc: general at lists.openfabrics.org
> Cc: Christoph Raisch <raisch at de.ibm.com>
> Cc: Hoang-Nam Nguyen <hnguyen at de.ibm.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
>
> ---
> drivers/infiniband/hw/ehca/ehca_main.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> --- a/drivers/infiniband/hw/ehca/ehca_main.c
> +++ b/drivers/infiniband/hw/ehca/ehca_main.c
> @@ -636,7 +636,7 @@ static ssize_t ehca_show_##name(struct
> struct hipz_query_hca *rblock; \
> int data; \
> \
> - shca = dev->driver_data; \
> + shca = dev_get_drvdata(dev); \
> \
> rblock = ehca_alloc_fw_ctrlblock(GFP_KERNEL); \
> if (!rblock) { \
> @@ -680,7 +680,7 @@ static ssize_t ehca_show_adapter_handle(
> struct device_attribute *attr,
> char *buf)
> {
> - struct ehca_shca *shca = dev->driver_data;
> + struct ehca_shca *shca = dev_get_drvdata(dev);
>
> return sprintf(buf, "%llx\n", shca->ipz_hca_handle.handle);
>
> @@ -749,7 +749,7 @@ static int __devinit ehca_probe(struct o
>
> shca->ofdev = dev;
> shca->ipz_hca_handle.handle = *handle;
> - dev->dev.driver_data = shca;
> + dev_set_drvdata(&dev->dev, shca);
>
> ret = ehca_sense_attributes(shca);
> if (ret < 0) {
> @@ -878,7 +878,7 @@ probe1:
>
> static int __devexit ehca_remove(struct of_device *dev)
> {
> - struct ehca_shca *shca = dev->dev.driver_data;
> + struct ehca_shca *shca = dev_get_drvdata(&dev->dev);
> unsigned long flags;
> int ret;
>
More information about the general
mailing list