From: Varun Prakash Date: Tue, 10 Oct 2017 13:55:30 +0000 (+0530) Subject: scsi: libcxgbi: in case of vlan pass 0 as ifindex to find route X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=4c2a02157fdd5dc71de7cf42eff07576746eb450;p=openwrt%2Fstaging%2Fblogic.git scsi: libcxgbi: in case of vlan pass 0 as ifindex to find route In case of vlan pass 0 as ifindex to find route instead of passing real_dev ifindex, if we pass real_dev ifindex then ip_route_output_ports() and ip6_route_output() will check for route through real_dev not through vlan interface. Signed-off-by: Varun Prakash Signed-off-by: Martin K. Petersen --- diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c index da36c2de069e..f39d4d107114 100644 --- a/drivers/scsi/cxgbi/libcxgbi.c +++ b/drivers/scsi/cxgbi/libcxgbi.c @@ -2554,7 +2554,10 @@ struct iscsi_endpoint *cxgbi_ep_connect(struct Scsi_Host *shost, goto err_out; } - ifindex = hba->ndev->ifindex; + rtnl_lock(); + if (!vlan_uses_dev(hba->ndev)) + ifindex = hba->ndev->ifindex; + rtnl_unlock(); } if (dst_addr->sa_family == AF_INET) {