infiniband: ehca: remove driver_data direct access of struct device
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 4 May 2009 19:40:54 +0000 (12:40 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 16 Jun 2009 04:30:27 +0000 (21:30 -0700)
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@intel.com>
Cc: Roland Dreier <rolandd@cisco.com>
Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
Cc: general@lists.openfabrics.org
Cc: Christoph Raisch <raisch@de.ibm.com>
Acked-by: Hoang-Nam Nguyen <hnguyen@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/infiniband/hw/ehca/ehca_main.c

index 85905ab..ce4e6ef 100644 (file)
@@ -636,7 +636,7 @@ static ssize_t  ehca_show_##name(struct device *dev,                       \
        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 *dev,
                                        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 of_device *dev,
 
        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;