aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-05-20 16:43:21 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-05-20 16:43:21 -0400
commit06f4e926d256d902dd9a53dcb400fd74974ce087 (patch)
tree0b438b67f5f0eff6fd617bc497a9dace6164a488 /drivers/scsi
parent8e7bfcbab3825d1b404d615cb1b54f44ff81f981 (diff)
parentd93515611bbc70c2fe4db232e5feb448ed8e4cc9 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1446 commits) macvlan: fix panic if lowerdev in a bond tg3: Add braces around 5906 workaround. tg3: Fix NETIF_F_LOOPBACK error macvlan: remove one synchronize_rcu() call networking: NET_CLS_ROUTE4 depends on INET irda: Fix error propagation in ircomm_lmp_connect_response() irda: Kill set but unused variable 'bytes' in irlan_check_command_param() irda: Kill set but unused variable 'clen' in ircomm_connect_indication() rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport() be2net: Kill set but unused variable 'req' in lancer_fw_download() irda: Kill set but unused vars 'saddr' and 'daddr' in irlan_provider_connect_indication() atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined. rxrpc: Fix set but unused variable 'usage' in rxrpc_get_peer(). rxrpc: Kill set but unused variable 'local' in rxrpc_UDP_error_handler() rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection() rxrpc: Kill set but unused variable 'sp' in rxrpc_rotate_tx_window() pkt_sched: Kill set but unused variable 'protocol' in tc_classify() isdn: capi: Use pr_debug() instead of ifdefs. tg3: Update version to 3.119 tg3: Apply rx_discards fix to 5719/5720 ... Fix up trivial conflicts in arch/x86/Kconfig and net/mac80211/agg-tx.c as per Davem.
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_fcoe.c11
-rw-r--r--drivers/scsi/cxgbi/libcxgbi.c10
-rw-r--r--drivers/scsi/fcoe/fcoe.c11
3 files changed, 20 insertions, 12 deletions
diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
index 662365676689..ab255fbc7f36 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
@@ -664,7 +664,7 @@ static void bnx2fc_link_speed_update(struct fc_lport *lport)
664 struct fcoe_port *port = lport_priv(lport); 664 struct fcoe_port *port = lport_priv(lport);
665 struct bnx2fc_hba *hba = port->priv; 665 struct bnx2fc_hba *hba = port->priv;
666 struct net_device *netdev = hba->netdev; 666 struct net_device *netdev = hba->netdev;
667 struct ethtool_cmd ecmd = { ETHTOOL_GSET }; 667 struct ethtool_cmd ecmd;
668 668
669 if (!dev_ethtool_get_settings(netdev, &ecmd)) { 669 if (!dev_ethtool_get_settings(netdev, &ecmd)) {
670 lport->link_supported_speeds &= 670 lport->link_supported_speeds &=
@@ -675,12 +675,15 @@ static void bnx2fc_link_speed_update(struct fc_lport *lport)
675 if (ecmd.supported & SUPPORTED_10000baseT_Full) 675 if (ecmd.supported & SUPPORTED_10000baseT_Full)
676 lport->link_supported_speeds |= FC_PORTSPEED_10GBIT; 676 lport->link_supported_speeds |= FC_PORTSPEED_10GBIT;
677 677
678 if (ecmd.speed == SPEED_1000) 678 switch (ethtool_cmd_speed(&ecmd)) {
679 case SPEED_1000:
679 lport->link_speed = FC_PORTSPEED_1GBIT; 680 lport->link_speed = FC_PORTSPEED_1GBIT;
680 if (ecmd.speed == SPEED_10000) 681 break;
682 case SPEED_10000:
681 lport->link_speed = FC_PORTSPEED_10GBIT; 683 lport->link_speed = FC_PORTSPEED_10GBIT;
684 break;
685 }
682 } 686 }
683 return;
684} 687}
685static int bnx2fc_link_ok(struct fc_lport *lport) 688static int bnx2fc_link_ok(struct fc_lport *lport)
686{ 689{
diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c
index de764ea7419d..a2a9c7c6c643 100644
--- a/drivers/scsi/cxgbi/libcxgbi.c
+++ b/drivers/scsi/cxgbi/libcxgbi.c
@@ -450,12 +450,13 @@ static struct cxgbi_sock *cxgbi_sock_create(struct cxgbi_device *cdev)
450 return csk; 450 return csk;
451} 451}
452 452
453static struct rtable *find_route_ipv4(__be32 saddr, __be32 daddr, 453static struct rtable *find_route_ipv4(struct flowi4 *fl4,
454 __be32 saddr, __be32 daddr,
454 __be16 sport, __be16 dport, u8 tos) 455 __be16 sport, __be16 dport, u8 tos)
455{ 456{
456 struct rtable *rt; 457 struct rtable *rt;
457 458
458 rt = ip_route_output_ports(&init_net, NULL, daddr, saddr, 459 rt = ip_route_output_ports(&init_net, fl4, NULL, daddr, saddr,
459 dport, sport, IPPROTO_TCP, tos, 0); 460 dport, sport, IPPROTO_TCP, tos, 0);
460 if (IS_ERR(rt)) 461 if (IS_ERR(rt))
461 return NULL; 462 return NULL;
@@ -470,6 +471,7 @@ static struct cxgbi_sock *cxgbi_check_route(struct sockaddr *dst_addr)
470 struct net_device *ndev; 471 struct net_device *ndev;
471 struct cxgbi_device *cdev; 472 struct cxgbi_device *cdev;
472 struct rtable *rt = NULL; 473 struct rtable *rt = NULL;
474 struct flowi4 fl4;
473 struct cxgbi_sock *csk = NULL; 475 struct cxgbi_sock *csk = NULL;
474 unsigned int mtu = 0; 476 unsigned int mtu = 0;
475 int port = 0xFFFF; 477 int port = 0xFFFF;
@@ -482,7 +484,7 @@ static struct cxgbi_sock *cxgbi_check_route(struct sockaddr *dst_addr)
482 goto err_out; 484 goto err_out;
483 } 485 }
484 486
485 rt = find_route_ipv4(0, daddr->sin_addr.s_addr, 0, daddr->sin_port, 0); 487 rt = find_route_ipv4(&fl4, 0, daddr->sin_addr.s_addr, 0, daddr->sin_port, 0);
486 if (!rt) { 488 if (!rt) {
487 pr_info("no route to ipv4 0x%x, port %u.\n", 489 pr_info("no route to ipv4 0x%x, port %u.\n",
488 daddr->sin_addr.s_addr, daddr->sin_port); 490 daddr->sin_addr.s_addr, daddr->sin_port);
@@ -531,7 +533,7 @@ static struct cxgbi_sock *cxgbi_check_route(struct sockaddr *dst_addr)
531 csk->daddr.sin_addr.s_addr = daddr->sin_addr.s_addr; 533 csk->daddr.sin_addr.s_addr = daddr->sin_addr.s_addr;
532 csk->daddr.sin_port = daddr->sin_port; 534 csk->daddr.sin_port = daddr->sin_port;
533 csk->daddr.sin_family = daddr->sin_family; 535 csk->daddr.sin_family = daddr->sin_family;
534 csk->saddr.sin_addr.s_addr = rt->rt_src; 536 csk->saddr.sin_addr.s_addr = fl4.saddr;
535 537
536 return csk; 538 return csk;
537 539
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index 5d3700dc6f8c..cc23bd9480b2 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -1952,7 +1952,7 @@ out_nodev:
1952int fcoe_link_speed_update(struct fc_lport *lport) 1952int fcoe_link_speed_update(struct fc_lport *lport)
1953{ 1953{
1954 struct net_device *netdev = fcoe_netdev(lport); 1954 struct net_device *netdev = fcoe_netdev(lport);
1955 struct ethtool_cmd ecmd = { ETHTOOL_GSET }; 1955 struct ethtool_cmd ecmd;
1956 1956
1957 if (!dev_ethtool_get_settings(netdev, &ecmd)) { 1957 if (!dev_ethtool_get_settings(netdev, &ecmd)) {
1958 lport->link_supported_speeds &= 1958 lport->link_supported_speeds &=
@@ -1963,11 +1963,14 @@ int fcoe_link_speed_update(struct fc_lport *lport)
1963 if (ecmd.supported & SUPPORTED_10000baseT_Full) 1963 if (ecmd.supported & SUPPORTED_10000baseT_Full)
1964 lport->link_supported_speeds |= 1964 lport->link_supported_speeds |=
1965 FC_PORTSPEED_10GBIT; 1965 FC_PORTSPEED_10GBIT;
1966 if (ecmd.speed == SPEED_1000) 1966 switch (ethtool_cmd_speed(&ecmd)) {
1967 case SPEED_1000:
1967 lport->link_speed = FC_PORTSPEED_1GBIT; 1968 lport->link_speed = FC_PORTSPEED_1GBIT;
1968 if (ecmd.speed == SPEED_10000) 1969 break;
1970 case SPEED_10000:
1969 lport->link_speed = FC_PORTSPEED_10GBIT; 1971 lport->link_speed = FC_PORTSPEED_10GBIT;
1970 1972 break;
1973 }
1971 return 0; 1974 return 0;
1972 } 1975 }
1973 return -1; 1976 return -1;