[openib-general] [PATCH] [RFC] ofed_1_2 - SLES9SP3 Backport -IWCM workaroundfor ip_dev_find() bug.

Steve Wise swise at opengridcomputing.com
Thu Feb 8 16:40:53 PST 2007


Michael, 

>From your email, it sounded like you would regression test this.  Is it
ready to pull in?  

Thanks!

Steve.


On Tue, 2007-02-06 at 17:39 -0600, Steve Wise wrote:
> 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;
> 
> 
> 
> _______________________________________________
> openib-general mailing list
> openib-general at openib.org
> http://openib.org/mailman/listinfo/openib-general
> 
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
> 





More information about the general mailing list