lkml.org 
[lkml]   [2008]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [ofa-general] [PATCH 2.6.25] RDMA/cxgb3: Fail loopbackconnections.
    From
    Date
    Steve, I had to update the patch adding an include and fixing the
    function declaration (as below)... but how much testing have you done
    with this??

    commit 8704e9a8790cc9e394198663c1c9150c899fb9a2
    Author: Steve Wise <swise@opengridcomputing.com>
    Date: Tue Feb 12 16:09:29 2008 -0600

    RDMA/cxgb3: Fail loopback connections

    The cxgb3 HW and driver don't support loopback RDMA connections. So
    fail any connection attempt where the destination address is local.

    Signed-off-by: Steve Wise <swise@opengridcomputing.com>
    Signed-off-by: Roland Dreier <rolandd@cisco.com>

    diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
    index e9a08fa..320f2b6 100644
    --- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
    +++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
    @@ -35,6 +35,7 @@
    #include <linux/skbuff.h>
    #include <linux/timer.h>
    #include <linux/notifier.h>
    +#include <linux/inetdevice.h>

    #include <net/neighbour.h>
    #include <net/netevent.h>
    @@ -1784,6 +1785,17 @@ err:
    return err;
    }

    +static int is_loopback_dst(struct iw_cm_id *cm_id)
    +{
    + struct net_device *dev;
    +
    + dev = ip_dev_find(&init_net, cm_id->remote_addr.sin_addr.s_addr);
    + if (!dev)
    + return 0;
    + dev_put(dev);
    + return 1;
    +}
    +
    int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
    {
    int err = 0;
    @@ -1791,6 +1803,11 @@ int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
    struct iwch_ep *ep;
    struct rtable *rt;

    + if (is_loopback_dst(cm_id)) {
    + err = -ENOSYS;
    + goto out;
    + }
    +
    ep = alloc_ep(sizeof(*ep), GFP_KERNEL);
    if (!ep) {
    printk(KERN_ERR MOD "%s - cannot alloc ep.\n", __FUNCTION__);

    \
     
     \ /
      Last update: 2008-02-13 16:53    [W:2.856 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site