[openib-general] [PATCH] [RFC] ofed_1_2 - SLES9SP3 Backport -IWCM workaroundfor ip_dev_find() bug.
Steve Wise
swise at opengridcomputing.com
Tue Feb 6 15:39:13 PST 2007
Here it is (only tested with rping over iWARP on sles9sp3):
----------------
xxx_ip_dev_find() must use scope HOST.
From: Steve Wise <swise at opengridcomputing.com>
Function xxx_ip_dev_find(RT_SCOPE_LINK) returns the wrong interface on
some kernels. The correct scope is RT_SCOPE_HOST.
Signed-off-by: Steve Wise <swise at opengridcomputing.com>
---
.../backport/2.6.11/include/linux/inetdevice.h | 2 +-
.../backport/2.6.11_FC4/include/linux/inetdevice.h | 2 +-
.../backport/2.6.12/include/linux/inetdevice.h | 2 +-
.../backport/2.6.13/include/linux/inetdevice.h | 2 +-
.../2.6.13_suse10_0_u/include/linux/inetdevice.h | 2 +-
.../backport/2.6.14/include/linux/inetdevice.h | 2 +-
.../backport/2.6.15/include/linux/inetdevice.h | 2 +-
.../2.6.15_ubuntu606/include/linux/inetdevice.h | 2 +-
.../backport/2.6.16/include/linux/inetdevice.h | 2 +-
.../backport/2.6.17/include/linux/inetdevice.h | 2 +-
.../2.6.5_sles9_sp3/include/linux/inetdevice.h | 2 +-
.../backport/2.6.9_U2/include/linux/inetdevice.h | 2 +-
.../backport/2.6.9_U3/include/linux/inetdevice.h | 2 +-
.../backport/2.6.9_U4/include/linux/inetdevice.h | 2 +-
14 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/kernel_addons/backport/2.6.11/include/linux/inetdevice.h b/kernel_addons/backport/2.6.11/include/linux/inetdevice.h
index 7244487..2d3c50f 100644
--- a/kernel_addons/backport/2.6.11/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.11/include/linux/inetdevice.h
@@ -13,7 +13,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.11_FC4/include/linux/inetdevice.h b/kernel_addons/backport/2.6.11_FC4/include/linux/inetdevice.h
index 7244487..2d3c50f 100644
--- a/kernel_addons/backport/2.6.11_FC4/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.11_FC4/include/linux/inetdevice.h
@@ -13,7 +13,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.12/include/linux/inetdevice.h b/kernel_addons/backport/2.6.12/include/linux/inetdevice.h
index 7244487..2d3c50f 100644
--- a/kernel_addons/backport/2.6.12/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.12/include/linux/inetdevice.h
@@ -13,7 +13,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.13/include/linux/inetdevice.h b/kernel_addons/backport/2.6.13/include/linux/inetdevice.h
index 7a32313..fd0aa36 100644
--- a/kernel_addons/backport/2.6.13/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.13/include/linux/inetdevice.h
@@ -11,7 +11,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.13_suse10_0_u/include/linux/inetdevice.h b/kernel_addons/backport/2.6.13_suse10_0_u/include/linux/inetdevice.h
index 7a32313..fd0aa36 100644
--- a/kernel_addons/backport/2.6.13_suse10_0_u/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.13_suse10_0_u/include/linux/inetdevice.h
@@ -11,7 +11,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.14/include/linux/inetdevice.h b/kernel_addons/backport/2.6.14/include/linux/inetdevice.h
index 7a32313..fd0aa36 100644
--- a/kernel_addons/backport/2.6.14/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.14/include/linux/inetdevice.h
@@ -11,7 +11,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.15/include/linux/inetdevice.h b/kernel_addons/backport/2.6.15/include/linux/inetdevice.h
index 7a32313..fd0aa36 100644
--- a/kernel_addons/backport/2.6.15/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.15/include/linux/inetdevice.h
@@ -11,7 +11,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.15_ubuntu606/include/linux/inetdevice.h b/kernel_addons/backport/2.6.15_ubuntu606/include/linux/inetdevice.h
index 7a32313..fd0aa36 100644
--- a/kernel_addons/backport/2.6.15_ubuntu606/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.15_ubuntu606/include/linux/inetdevice.h
@@ -11,7 +11,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.16/include/linux/inetdevice.h b/kernel_addons/backport/2.6.16/include/linux/inetdevice.h
index 7a32313..fd0aa36 100644
--- a/kernel_addons/backport/2.6.16/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.16/include/linux/inetdevice.h
@@ -11,7 +11,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.17/include/linux/inetdevice.h b/kernel_addons/backport/2.6.17/include/linux/inetdevice.h
index 7a32313..fd0aa36 100644
--- a/kernel_addons/backport/2.6.17/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.17/include/linux/inetdevice.h
@@ -11,7 +11,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.5_sles9_sp3/include/linux/inetdevice.h b/kernel_addons/backport/2.6.5_sles9_sp3/include/linux/inetdevice.h
index 7244487..2d3c50f 100644
--- a/kernel_addons/backport/2.6.5_sles9_sp3/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.5_sles9_sp3/include/linux/inetdevice.h
@@ -13,7 +13,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.9_U2/include/linux/inetdevice.h b/kernel_addons/backport/2.6.9_U2/include/linux/inetdevice.h
index 7244487..2d3c50f 100644
--- a/kernel_addons/backport/2.6.9_U2/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.9_U2/include/linux/inetdevice.h
@@ -13,7 +13,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.9_U3/include/linux/inetdevice.h b/kernel_addons/backport/2.6.9_U3/include/linux/inetdevice.h
index 7244487..2d3c50f 100644
--- a/kernel_addons/backport/2.6.9_U3/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.9_U3/include/linux/inetdevice.h
@@ -13,7 +13,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
diff --git a/kernel_addons/backport/2.6.9_U4/include/linux/inetdevice.h b/kernel_addons/backport/2.6.9_U4/include/linux/inetdevice.h
index 7244487..2d3c50f 100644
--- a/kernel_addons/backport/2.6.9_U4/include/linux/inetdevice.h
+++ b/kernel_addons/backport/2.6.9_U4/include/linux/inetdevice.h
@@ -13,7 +13,7 @@ static inline struct net_device *xxx_ip_
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next) {
- ip = inet_select_addr(dev, 0, RT_SCOPE_LINK);
+ ip = inet_select_addr(dev, 0, RT_SCOPE_HOST);
if (ip == addr) {
dev_hold(dev);
break;
More information about the general
mailing list