Hi Vlad,

please apply the following backport for OFED-1.5.4.

Signed-off-by: Alexander Schmidt <[email protected]>

Index: 
ofa_kernel-1.5.4/kernel_patches/backport/2.6.32-EL6.1/ehca-010-remove_driver_data.patch
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ 
ofa_kernel-1.5.4/kernel_patches/backport/2.6.32-EL6.1/ehca-010-remove_driver_data.patch
     2011-11-21 18:09:25.000000000 +0100
@@ -0,0 +1,60 @@
+commit f899c2ddd45f2515deb446e2b143e4a686a49aee
+Author: Greg Kroah-Hartman <[email protected]>
+Date:   Mon May 4 12:40:54 2009 -0700
+
+    infiniband: ehca: remove driver_data direct access of struct device
+    
+    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 <[email protected]>
+    Cc: Roland Dreier <[email protected]>
+    Cc: Hal Rosenstock <[email protected]>
+    Cc: [email protected]
+    Cc: Christoph Raisch <[email protected]>
+    Acked-by: Hoang-Nam Nguyen <[email protected]>
+    Signed-off-by: Greg Kroah-Hartman <[email protected]>
+
+diff --git a/drivers/infiniband/hw/ehca/ehca_main.c 
b/drivers/infiniband/hw/ehca/ehca_main.c
+index 85905ab..ce4e6ef 100644
+--- 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 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;
+ 
Index: 
ofa_kernel-1.5.4/kernel_patches/backport/2.6.32-EL6.1/ehca-020-fix_buswalk.patch
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ 
ofa_kernel-1.5.4/kernel_patches/backport/2.6.32-EL6.1/ehca-020-fix_buswalk.patch
    2011-11-21 18:10:02.000000000 +0100
@@ -0,0 +1,17 @@
+---
+ drivers/infiniband/hw/ehca/ehca_mrmw.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: ofa_kernel-1.5.1/drivers/infiniband/hw/ehca/ehca_mrmw.c
+===================================================================
+--- ofa_kernel-1.5.1.orig/drivers/infiniband/hw/ehca/ehca_mrmw.c
++++ ofa_kernel-1.5.1/drivers/infiniband/hw/ehca/ehca_mrmw.c
+@@ -2463,7 +2463,7 @@ int ehca_create_busmap(void)
+       int ret;
+ 
+       ehca_mr_len = 0;
+-      ret = walk_memory_resource(0, 1ULL << MAX_PHYSMEM_BITS, NULL,
++      ret = walk_system_ram_range(0, 1ULL << MAX_PHYSMEM_BITS, NULL,
+                                  ehca_create_busmap_callback);
+       return ret;
+ }
_______________________________________________
ewg mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to