.. | .. |
---|
52 | 52 | unsigned long flags; |
---|
53 | 53 | int old_link_status; |
---|
54 | 54 | u32 old_link_down_cnt; |
---|
| 55 | + u64 old_port_speed, new_port_speed; |
---|
55 | 56 | |
---|
56 | 57 | spin_lock_irqsave(&fnic->fnic_lock, flags); |
---|
57 | 58 | |
---|
.. | .. |
---|
62 | 63 | |
---|
63 | 64 | old_link_down_cnt = fnic->link_down_cnt; |
---|
64 | 65 | old_link_status = fnic->link_status; |
---|
| 66 | + old_port_speed = atomic64_read( |
---|
| 67 | + &fnic->fnic_stats.misc_stats.current_port_speed); |
---|
| 68 | + |
---|
65 | 69 | fnic->link_status = vnic_dev_link_status(fnic->vdev); |
---|
66 | 70 | fnic->link_down_cnt = vnic_dev_link_down_cnt(fnic->vdev); |
---|
| 71 | + |
---|
| 72 | + new_port_speed = vnic_dev_port_speed(fnic->vdev); |
---|
| 73 | + atomic64_set(&fnic->fnic_stats.misc_stats.current_port_speed, |
---|
| 74 | + new_port_speed); |
---|
| 75 | + if (old_port_speed != new_port_speed) |
---|
| 76 | + shost_printk(KERN_INFO, fnic->lport->host, |
---|
| 77 | + "Current vnic speed set to : %llu\n", |
---|
| 78 | + new_port_speed); |
---|
67 | 79 | |
---|
68 | 80 | switch (vnic_dev_port_speed(fnic->vdev)) { |
---|
69 | 81 | case DCEM_PORTSPEED_10G: |
---|
70 | 82 | fc_host_speed(fnic->lport->host) = FC_PORTSPEED_10GBIT; |
---|
71 | 83 | fnic->lport->link_supported_speeds = FC_PORTSPEED_10GBIT; |
---|
| 84 | + break; |
---|
| 85 | + case DCEM_PORTSPEED_20G: |
---|
| 86 | + fc_host_speed(fnic->lport->host) = FC_PORTSPEED_20GBIT; |
---|
| 87 | + fnic->lport->link_supported_speeds = FC_PORTSPEED_20GBIT; |
---|
72 | 88 | break; |
---|
73 | 89 | case DCEM_PORTSPEED_25G: |
---|
74 | 90 | fc_host_speed(fnic->lport->host) = FC_PORTSPEED_25GBIT; |
---|
.. | .. |
---|
293 | 309 | struct fc_frame_header *fh = NULL; |
---|
294 | 310 | struct fip_desc *desc; |
---|
295 | 311 | struct fip_encaps *els; |
---|
296 | | - enum fip_desc_type els_dtype = 0; |
---|
297 | 312 | u16 op; |
---|
298 | 313 | u8 els_op; |
---|
299 | 314 | u8 sub; |
---|
300 | 315 | |
---|
301 | | - size_t els_len = 0; |
---|
302 | 316 | size_t rlen; |
---|
303 | 317 | size_t dlen = 0; |
---|
304 | 318 | |
---|
.. | .. |
---|
330 | 344 | if (dlen < sizeof(*els) + sizeof(*fh) + 1) |
---|
331 | 345 | return 0; |
---|
332 | 346 | |
---|
333 | | - els_len = dlen - sizeof(*els); |
---|
334 | 347 | els = (struct fip_encaps *)desc; |
---|
335 | 348 | fh = (struct fc_frame_header *)(els + 1); |
---|
336 | | - els_dtype = desc->fip_dtype; |
---|
337 | 349 | |
---|
338 | 350 | if (!fh) |
---|
339 | 351 | return 0; |
---|
.. | .. |
---|
360 | 372 | struct fnic_stats *fnic_stats = &fnic->fnic_stats; |
---|
361 | 373 | struct sk_buff *skb; |
---|
362 | 374 | char *eth_fr; |
---|
363 | | - int fr_len; |
---|
364 | 375 | struct fip_vlan *vlan; |
---|
365 | 376 | u64 vlan_tov; |
---|
366 | 377 | |
---|
.. | .. |
---|
375 | 386 | if (!skb) |
---|
376 | 387 | return; |
---|
377 | 388 | |
---|
378 | | - fr_len = sizeof(*vlan); |
---|
379 | 389 | eth_fr = (char *)skb->data; |
---|
380 | 390 | vlan = (struct fip_vlan *)eth_fr; |
---|
381 | 391 | |
---|
.. | .. |
---|
821 | 831 | struct sk_buff *skb; |
---|
822 | 832 | struct fc_frame *fp; |
---|
823 | 833 | struct fnic_stats *fnic_stats = &fnic->fnic_stats; |
---|
824 | | - unsigned int eth_hdrs_stripped; |
---|
825 | 834 | u8 type, color, eop, sop, ingress_port, vlan_stripped; |
---|
826 | 835 | u8 fcoe = 0, fcoe_sof, fcoe_eof; |
---|
827 | 836 | u8 fcoe_fc_crc_ok = 1, fcoe_enc_error = 0; |
---|
.. | .. |
---|
836 | 845 | u32 fcp_bytes_written = 0; |
---|
837 | 846 | unsigned long flags; |
---|
838 | 847 | |
---|
839 | | - pci_unmap_single(fnic->pdev, buf->dma_addr, buf->len, |
---|
840 | | - PCI_DMA_FROMDEVICE); |
---|
| 848 | + dma_unmap_single(&fnic->pdev->dev, buf->dma_addr, buf->len, |
---|
| 849 | + DMA_FROM_DEVICE); |
---|
841 | 850 | skb = buf->os_buf; |
---|
842 | 851 | fp = (struct fc_frame *)skb; |
---|
843 | 852 | buf->os_buf = NULL; |
---|
.. | .. |
---|
851 | 860 | &ingress_port, &packet_error, |
---|
852 | 861 | &fcoe_enc_error, &fcs_ok, &vlan_stripped, |
---|
853 | 862 | &vlan); |
---|
854 | | - eth_hdrs_stripped = 1; |
---|
855 | 863 | skb_trim(skb, fcp_bytes_written); |
---|
856 | 864 | fr_sof(fp) = sof; |
---|
857 | 865 | fr_eof(fp) = eof; |
---|
.. | .. |
---|
868 | 876 | &tcp_udp_csum_ok, &udp, &tcp, |
---|
869 | 877 | &ipv4_csum_ok, &ipv6, &ipv4, |
---|
870 | 878 | &ipv4_fragment, &fcs_ok); |
---|
871 | | - eth_hdrs_stripped = 0; |
---|
872 | 879 | skb_trim(skb, bytes_written); |
---|
873 | 880 | if (!fcs_ok) { |
---|
874 | 881 | atomic64_inc(&fnic_stats->misc_stats.frame_errors); |
---|
.. | .. |
---|
977 | 984 | skb_reset_transport_header(skb); |
---|
978 | 985 | skb_reset_network_header(skb); |
---|
979 | 986 | skb_put(skb, len); |
---|
980 | | - pa = pci_map_single(fnic->pdev, skb->data, len, PCI_DMA_FROMDEVICE); |
---|
981 | | - |
---|
982 | | - if (pci_dma_mapping_error(fnic->pdev, pa)) { |
---|
| 987 | + pa = dma_map_single(&fnic->pdev->dev, skb->data, len, DMA_FROM_DEVICE); |
---|
| 988 | + if (dma_mapping_error(&fnic->pdev->dev, pa)) { |
---|
983 | 989 | r = -ENOMEM; |
---|
984 | 990 | printk(KERN_ERR "PCI mapping failed with error %d\n", r); |
---|
985 | 991 | goto free_skb; |
---|
.. | .. |
---|
998 | 1004 | struct fc_frame *fp = buf->os_buf; |
---|
999 | 1005 | struct fnic *fnic = vnic_dev_priv(rq->vdev); |
---|
1000 | 1006 | |
---|
1001 | | - pci_unmap_single(fnic->pdev, buf->dma_addr, buf->len, |
---|
1002 | | - PCI_DMA_FROMDEVICE); |
---|
| 1007 | + dma_unmap_single(&fnic->pdev->dev, buf->dma_addr, buf->len, |
---|
| 1008 | + DMA_FROM_DEVICE); |
---|
1003 | 1009 | |
---|
1004 | 1010 | dev_kfree_skb(fp_skb(fp)); |
---|
1005 | 1011 | buf->os_buf = NULL; |
---|
.. | .. |
---|
1018 | 1024 | struct ethhdr *eth_hdr; |
---|
1019 | 1025 | struct vlan_ethhdr *vlan_hdr; |
---|
1020 | 1026 | unsigned long flags; |
---|
1021 | | - int r; |
---|
1022 | 1027 | |
---|
1023 | 1028 | if (!fnic->vlan_hw_insert) { |
---|
1024 | 1029 | eth_hdr = (struct ethhdr *)skb_mac_header(skb); |
---|
.. | .. |
---|
1038 | 1043 | } |
---|
1039 | 1044 | } |
---|
1040 | 1045 | |
---|
1041 | | - pa = pci_map_single(fnic->pdev, skb->data, skb->len, PCI_DMA_TODEVICE); |
---|
1042 | | - |
---|
1043 | | - r = pci_dma_mapping_error(fnic->pdev, pa); |
---|
1044 | | - if (r) { |
---|
1045 | | - printk(KERN_ERR "PCI mapping failed with error %d\n", r); |
---|
| 1046 | + pa = dma_map_single(&fnic->pdev->dev, skb->data, skb->len, |
---|
| 1047 | + DMA_TO_DEVICE); |
---|
| 1048 | + if (dma_mapping_error(&fnic->pdev->dev, pa)) { |
---|
| 1049 | + printk(KERN_ERR "DMA mapping failed\n"); |
---|
1046 | 1050 | goto free_skb; |
---|
1047 | 1051 | } |
---|
1048 | 1052 | |
---|
.. | .. |
---|
1058 | 1062 | |
---|
1059 | 1063 | irq_restore: |
---|
1060 | 1064 | spin_unlock_irqrestore(&fnic->wq_lock[0], flags); |
---|
1061 | | - pci_unmap_single(fnic->pdev, pa, skb->len, PCI_DMA_TODEVICE); |
---|
| 1065 | + dma_unmap_single(&fnic->pdev->dev, pa, skb->len, DMA_TO_DEVICE); |
---|
1062 | 1066 | free_skb: |
---|
1063 | 1067 | kfree_skb(skb); |
---|
1064 | 1068 | } |
---|
.. | .. |
---|
1115 | 1119 | if (FC_FCOE_VER) |
---|
1116 | 1120 | FC_FCOE_ENCAPS_VER(fcoe_hdr, FC_FCOE_VER); |
---|
1117 | 1121 | |
---|
1118 | | - pa = pci_map_single(fnic->pdev, eth_hdr, tot_len, PCI_DMA_TODEVICE); |
---|
1119 | | - |
---|
1120 | | - if (pci_dma_mapping_error(fnic->pdev, pa)) { |
---|
| 1122 | + pa = dma_map_single(&fnic->pdev->dev, eth_hdr, tot_len, DMA_TO_DEVICE); |
---|
| 1123 | + if (dma_mapping_error(&fnic->pdev->dev, pa)) { |
---|
1121 | 1124 | ret = -ENOMEM; |
---|
1122 | 1125 | printk(KERN_ERR "DMA map failed with error %d\n", ret); |
---|
1123 | 1126 | goto free_skb_on_err; |
---|
.. | .. |
---|
1131 | 1134 | spin_lock_irqsave(&fnic->wq_lock[0], flags); |
---|
1132 | 1135 | |
---|
1133 | 1136 | if (!vnic_wq_desc_avail(wq)) { |
---|
1134 | | - pci_unmap_single(fnic->pdev, pa, |
---|
1135 | | - tot_len, PCI_DMA_TODEVICE); |
---|
| 1137 | + dma_unmap_single(&fnic->pdev->dev, pa, tot_len, DMA_TO_DEVICE); |
---|
1136 | 1138 | ret = -1; |
---|
1137 | 1139 | goto irq_restore; |
---|
1138 | 1140 | } |
---|
.. | .. |
---|
1247 | 1249 | struct fc_frame *fp = (struct fc_frame *)skb; |
---|
1248 | 1250 | struct fnic *fnic = vnic_dev_priv(wq->vdev); |
---|
1249 | 1251 | |
---|
1250 | | - pci_unmap_single(fnic->pdev, buf->dma_addr, |
---|
1251 | | - buf->len, PCI_DMA_TODEVICE); |
---|
| 1252 | + dma_unmap_single(&fnic->pdev->dev, buf->dma_addr, buf->len, |
---|
| 1253 | + DMA_TO_DEVICE); |
---|
1252 | 1254 | dev_kfree_skb_irq(fp_skb(fp)); |
---|
1253 | 1255 | buf->os_buf = NULL; |
---|
1254 | 1256 | } |
---|
.. | .. |
---|
1290 | 1292 | struct fc_frame *fp = buf->os_buf; |
---|
1291 | 1293 | struct fnic *fnic = vnic_dev_priv(wq->vdev); |
---|
1292 | 1294 | |
---|
1293 | | - pci_unmap_single(fnic->pdev, buf->dma_addr, |
---|
1294 | | - buf->len, PCI_DMA_TODEVICE); |
---|
| 1295 | + dma_unmap_single(&fnic->pdev->dev, buf->dma_addr, buf->len, |
---|
| 1296 | + DMA_TO_DEVICE); |
---|
1295 | 1297 | |
---|
1296 | 1298 | dev_kfree_skb(fp_skb(fp)); |
---|
1297 | 1299 | buf->os_buf = NULL; |
---|