hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/scsi/fnic/fnic_fcs.c
....@@ -52,6 +52,7 @@
5252 unsigned long flags;
5353 int old_link_status;
5454 u32 old_link_down_cnt;
55
+ u64 old_port_speed, new_port_speed;
5556
5657 spin_lock_irqsave(&fnic->fnic_lock, flags);
5758
....@@ -62,13 +63,28 @@
6263
6364 old_link_down_cnt = fnic->link_down_cnt;
6465 old_link_status = fnic->link_status;
66
+ old_port_speed = atomic64_read(
67
+ &fnic->fnic_stats.misc_stats.current_port_speed);
68
+
6569 fnic->link_status = vnic_dev_link_status(fnic->vdev);
6670 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);
6779
6880 switch (vnic_dev_port_speed(fnic->vdev)) {
6981 case DCEM_PORTSPEED_10G:
7082 fc_host_speed(fnic->lport->host) = FC_PORTSPEED_10GBIT;
7183 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;
7288 break;
7389 case DCEM_PORTSPEED_25G:
7490 fc_host_speed(fnic->lport->host) = FC_PORTSPEED_25GBIT;
....@@ -293,12 +309,10 @@
293309 struct fc_frame_header *fh = NULL;
294310 struct fip_desc *desc;
295311 struct fip_encaps *els;
296
- enum fip_desc_type els_dtype = 0;
297312 u16 op;
298313 u8 els_op;
299314 u8 sub;
300315
301
- size_t els_len = 0;
302316 size_t rlen;
303317 size_t dlen = 0;
304318
....@@ -330,10 +344,8 @@
330344 if (dlen < sizeof(*els) + sizeof(*fh) + 1)
331345 return 0;
332346
333
- els_len = dlen - sizeof(*els);
334347 els = (struct fip_encaps *)desc;
335348 fh = (struct fc_frame_header *)(els + 1);
336
- els_dtype = desc->fip_dtype;
337349
338350 if (!fh)
339351 return 0;
....@@ -360,7 +372,6 @@
360372 struct fnic_stats *fnic_stats = &fnic->fnic_stats;
361373 struct sk_buff *skb;
362374 char *eth_fr;
363
- int fr_len;
364375 struct fip_vlan *vlan;
365376 u64 vlan_tov;
366377
....@@ -375,7 +386,6 @@
375386 if (!skb)
376387 return;
377388
378
- fr_len = sizeof(*vlan);
379389 eth_fr = (char *)skb->data;
380390 vlan = (struct fip_vlan *)eth_fr;
381391
....@@ -821,7 +831,6 @@
821831 struct sk_buff *skb;
822832 struct fc_frame *fp;
823833 struct fnic_stats *fnic_stats = &fnic->fnic_stats;
824
- unsigned int eth_hdrs_stripped;
825834 u8 type, color, eop, sop, ingress_port, vlan_stripped;
826835 u8 fcoe = 0, fcoe_sof, fcoe_eof;
827836 u8 fcoe_fc_crc_ok = 1, fcoe_enc_error = 0;
....@@ -836,8 +845,8 @@
836845 u32 fcp_bytes_written = 0;
837846 unsigned long flags;
838847
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);
841850 skb = buf->os_buf;
842851 fp = (struct fc_frame *)skb;
843852 buf->os_buf = NULL;
....@@ -851,7 +860,6 @@
851860 &ingress_port, &packet_error,
852861 &fcoe_enc_error, &fcs_ok, &vlan_stripped,
853862 &vlan);
854
- eth_hdrs_stripped = 1;
855863 skb_trim(skb, fcp_bytes_written);
856864 fr_sof(fp) = sof;
857865 fr_eof(fp) = eof;
....@@ -868,7 +876,6 @@
868876 &tcp_udp_csum_ok, &udp, &tcp,
869877 &ipv4_csum_ok, &ipv6, &ipv4,
870878 &ipv4_fragment, &fcs_ok);
871
- eth_hdrs_stripped = 0;
872879 skb_trim(skb, bytes_written);
873880 if (!fcs_ok) {
874881 atomic64_inc(&fnic_stats->misc_stats.frame_errors);
....@@ -977,9 +984,8 @@
977984 skb_reset_transport_header(skb);
978985 skb_reset_network_header(skb);
979986 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)) {
983989 r = -ENOMEM;
984990 printk(KERN_ERR "PCI mapping failed with error %d\n", r);
985991 goto free_skb;
....@@ -998,8 +1004,8 @@
9981004 struct fc_frame *fp = buf->os_buf;
9991005 struct fnic *fnic = vnic_dev_priv(rq->vdev);
10001006
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);
10031009
10041010 dev_kfree_skb(fp_skb(fp));
10051011 buf->os_buf = NULL;
....@@ -1018,7 +1024,6 @@
10181024 struct ethhdr *eth_hdr;
10191025 struct vlan_ethhdr *vlan_hdr;
10201026 unsigned long flags;
1021
- int r;
10221027
10231028 if (!fnic->vlan_hw_insert) {
10241029 eth_hdr = (struct ethhdr *)skb_mac_header(skb);
....@@ -1038,11 +1043,10 @@
10381043 }
10391044 }
10401045
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");
10461050 goto free_skb;
10471051 }
10481052
....@@ -1058,7 +1062,7 @@
10581062
10591063 irq_restore:
10601064 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);
10621066 free_skb:
10631067 kfree_skb(skb);
10641068 }
....@@ -1115,9 +1119,8 @@
11151119 if (FC_FCOE_VER)
11161120 FC_FCOE_ENCAPS_VER(fcoe_hdr, FC_FCOE_VER);
11171121
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)) {
11211124 ret = -ENOMEM;
11221125 printk(KERN_ERR "DMA map failed with error %d\n", ret);
11231126 goto free_skb_on_err;
....@@ -1131,8 +1134,7 @@
11311134 spin_lock_irqsave(&fnic->wq_lock[0], flags);
11321135
11331136 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);
11361138 ret = -1;
11371139 goto irq_restore;
11381140 }
....@@ -1247,8 +1249,8 @@
12471249 struct fc_frame *fp = (struct fc_frame *)skb;
12481250 struct fnic *fnic = vnic_dev_priv(wq->vdev);
12491251
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);
12521254 dev_kfree_skb_irq(fp_skb(fp));
12531255 buf->os_buf = NULL;
12541256 }
....@@ -1290,8 +1292,8 @@
12901292 struct fc_frame *fp = buf->os_buf;
12911293 struct fnic *fnic = vnic_dev_priv(wq->vdev);
12921294
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);
12951297
12961298 dev_kfree_skb(fp_skb(fp));
12971299 buf->os_buf = NULL;