diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-25 07:25:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-25 07:25:22 -0400 |
commit | 8a9ea3237e7eb5c25f09e429ad242ae5a3d5ea22 (patch) | |
tree | a0a63398a9983667d52cbbbf4e2405b4f22b1d83 /drivers/scsi/fcoe | |
parent | 1be025d3cb40cd295123af2c394f7229ef9b30ca (diff) | |
parent | 8b3408f8ee994973869d8ba32c5bf482bc4ddca4 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1745 commits)
dp83640: free packet queues on remove
dp83640: use proper function to free transmit time stamping packets
ipv6: Do not use routes from locally generated RAs
|PATCH net-next] tg3: add tx_dropped counter
be2net: don't create multiple RX/TX rings in multi channel mode
be2net: don't create multiple TXQs in BE2
be2net: refactor VF setup/teardown code into be_vf_setup/clear()
be2net: add vlan/rx-mode/flow-control config to be_setup()
net_sched: cls_flow: use skb_header_pointer()
ipv4: avoid useless call of the function check_peer_pmtu
TCP: remove TCP_DEBUG
net: Fix driver name for mdio-gpio.c
ipv4: tcp: fix TOS value in ACK messages sent from TIME_WAIT
rtnetlink: Add missing manual netlink notification in dev_change_net_namespaces
ipv4: fix ipsec forward performance regression
jme: fix irq storm after suspend/resume
route: fix ICMP redirect validation
net: hold sock reference while processing tx timestamps
tcp: md5: add more const attributes
Add ethtool -g support to virtio_net
...
Fix up conflicts in:
- drivers/net/Kconfig:
The split-up generated a trivial conflict with removal of a
stale reference to Documentation/networking/net-modules.txt.
Remove it from the new location instead.
- fs/sysfs/dir.c:
Fairly nasty conflicts with the sysfs rb-tree usage, conflicting
with Eric Biederman's changes for tagged directories.
Diffstat (limited to 'drivers/scsi/fcoe')
-rw-r--r-- | drivers/scsi/fcoe/fcoe.c | 6 | ||||
-rw-r--r-- | drivers/scsi/fcoe/fcoe_transport.c | 7 |
2 files changed, 8 insertions, 5 deletions
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c index 34c8d82b7423..a1c0ddd53aa9 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c | |||
@@ -1517,7 +1517,7 @@ int fcoe_xmit(struct fc_lport *lport, struct fc_frame *fp) | |||
1517 | return -ENOMEM; | 1517 | return -ENOMEM; |
1518 | } | 1518 | } |
1519 | frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1]; | 1519 | frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1]; |
1520 | cp = kmap_atomic(frag->page, KM_SKB_DATA_SOFTIRQ) | 1520 | cp = kmap_atomic(skb_frag_page(frag), KM_SKB_DATA_SOFTIRQ) |
1521 | + frag->page_offset; | 1521 | + frag->page_offset; |
1522 | } else { | 1522 | } else { |
1523 | cp = (struct fcoe_crc_eof *)skb_put(skb, tlen); | 1523 | cp = (struct fcoe_crc_eof *)skb_put(skb, tlen); |
@@ -2045,7 +2045,7 @@ int fcoe_link_speed_update(struct fc_lport *lport) | |||
2045 | struct net_device *netdev = fcoe_netdev(lport); | 2045 | struct net_device *netdev = fcoe_netdev(lport); |
2046 | struct ethtool_cmd ecmd; | 2046 | struct ethtool_cmd ecmd; |
2047 | 2047 | ||
2048 | if (!dev_ethtool_get_settings(netdev, &ecmd)) { | 2048 | if (!__ethtool_get_settings(netdev, &ecmd)) { |
2049 | lport->link_supported_speeds &= | 2049 | lport->link_supported_speeds &= |
2050 | ~(FC_PORTSPEED_1GBIT | FC_PORTSPEED_10GBIT); | 2050 | ~(FC_PORTSPEED_1GBIT | FC_PORTSPEED_10GBIT); |
2051 | if (ecmd.supported & (SUPPORTED_1000baseT_Half | | 2051 | if (ecmd.supported & (SUPPORTED_1000baseT_Half | |
@@ -2454,7 +2454,9 @@ static int fcoe_vport_create(struct fc_vport *vport, bool disabled) | |||
2454 | } | 2454 | } |
2455 | 2455 | ||
2456 | mutex_lock(&fcoe_config_mutex); | 2456 | mutex_lock(&fcoe_config_mutex); |
2457 | rtnl_lock(); | ||
2457 | vn_port = fcoe_if_create(fcoe, &vport->dev, 1); | 2458 | vn_port = fcoe_if_create(fcoe, &vport->dev, 1); |
2459 | rtnl_unlock(); | ||
2458 | mutex_unlock(&fcoe_config_mutex); | 2460 | mutex_unlock(&fcoe_config_mutex); |
2459 | 2461 | ||
2460 | if (IS_ERR(vn_port)) { | 2462 | if (IS_ERR(vn_port)) { |
diff --git a/drivers/scsi/fcoe/fcoe_transport.c b/drivers/scsi/fcoe/fcoe_transport.c index 41068e8748e7..dac8e39a5188 100644 --- a/drivers/scsi/fcoe/fcoe_transport.c +++ b/drivers/scsi/fcoe/fcoe_transport.c | |||
@@ -105,11 +105,12 @@ u32 fcoe_fc_crc(struct fc_frame *fp) | |||
105 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 105 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
106 | frag = &skb_shinfo(skb)->frags[i]; | 106 | frag = &skb_shinfo(skb)->frags[i]; |
107 | off = frag->page_offset; | 107 | off = frag->page_offset; |
108 | len = frag->size; | 108 | len = skb_frag_size(frag); |
109 | while (len > 0) { | 109 | while (len > 0) { |
110 | clen = min(len, PAGE_SIZE - (off & ~PAGE_MASK)); | 110 | clen = min(len, PAGE_SIZE - (off & ~PAGE_MASK)); |
111 | data = kmap_atomic(frag->page + (off >> PAGE_SHIFT), | 111 | data = kmap_atomic( |
112 | KM_SKB_DATA_SOFTIRQ); | 112 | skb_frag_page(frag) + (off >> PAGE_SHIFT), |
113 | KM_SKB_DATA_SOFTIRQ); | ||
113 | crc = crc32(crc, data + (off & ~PAGE_MASK), clen); | 114 | crc = crc32(crc, data + (off & ~PAGE_MASK), clen); |
114 | kunmap_atomic(data, KM_SKB_DATA_SOFTIRQ); | 115 | kunmap_atomic(data, KM_SKB_DATA_SOFTIRQ); |
115 | off += clen; | 116 | off += clen; |