]>
Commit | Line | Data |
---|---|---|
5dde66b4 | 1 | From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
53226238 FG |
2 | From: "Martin K. Petersen" <martin.petersen@oracle.com> |
3 | Date: Fri, 8 Dec 2023 12:09:38 -0500 | |
5dde66b4 TL |
4 | Subject: [PATCH] Revert "scsi: aacraid: Reply queue mapping to CPUs based on |
5 | IRQ affinity" | |
53226238 FG |
6 | |
7 | This reverts commit 9dc704dcc09eae7d21b5da0615eb2ed79278f63e. | |
8 | ||
9 | Several reports have been made indicating that this commit caused | |
10 | hangs. Numerous attempts at root causing and fixing the issue have | |
11 | been unsuccessful so let's revert for now. | |
12 | ||
13 | Link: https://bugzilla.kernel.org/show_bug.cgi?id=217599 | |
14 | Cc: <stable@vger.kernel.org> | |
15 | Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> | |
16 | --- | |
17 | drivers/scsi/aacraid/aacraid.h | 1 - | |
18 | drivers/scsi/aacraid/commsup.c | 6 +----- | |
19 | drivers/scsi/aacraid/linit.c | 14 -------------- | |
20 | drivers/scsi/aacraid/src.c | 25 ++----------------------- | |
21 | 4 files changed, 3 insertions(+), 43 deletions(-) | |
22 | ||
23 | diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h | |
5dde66b4 | 24 | index 73b6ac0c01f5..7d5a155073c6 100644 |
53226238 FG |
25 | --- a/drivers/scsi/aacraid/aacraid.h |
26 | +++ b/drivers/scsi/aacraid/aacraid.h | |
27 | @@ -1678,7 +1678,6 @@ struct aac_dev | |
28 | u32 handle_pci_error; | |
29 | bool init_reset; | |
30 | u8 soft_reset_support; | |
31 | - u8 use_map_queue; | |
32 | }; | |
33 | ||
34 | #define aac_adapter_interrupt(dev) \ | |
35 | diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c | |
5dde66b4 | 36 | index 013a9a334972..25cee03d7f97 100644 |
53226238 FG |
37 | --- a/drivers/scsi/aacraid/commsup.c |
38 | +++ b/drivers/scsi/aacraid/commsup.c | |
39 | @@ -223,12 +223,8 @@ int aac_fib_setup(struct aac_dev * dev) | |
40 | struct fib *aac_fib_alloc_tag(struct aac_dev *dev, struct scsi_cmnd *scmd) | |
41 | { | |
42 | struct fib *fibptr; | |
43 | - u32 blk_tag; | |
44 | - int i; | |
45 | ||
46 | - blk_tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmd)); | |
47 | - i = blk_mq_unique_tag_to_tag(blk_tag); | |
48 | - fibptr = &dev->fibs[i]; | |
49 | + fibptr = &dev->fibs[scsi_cmd_to_rq(scmd)->tag]; | |
50 | /* | |
51 | * Null out fields that depend on being zero at the start of | |
52 | * each I/O | |
53 | diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c | |
5dde66b4 | 54 | index c4a36c0be527..68f4dbcfff49 100644 |
53226238 FG |
55 | --- a/drivers/scsi/aacraid/linit.c |
56 | +++ b/drivers/scsi/aacraid/linit.c | |
57 | @@ -19,7 +19,6 @@ | |
58 | ||
59 | #include <linux/compat.h> | |
60 | #include <linux/blkdev.h> | |
61 | -#include <linux/blk-mq-pci.h> | |
62 | #include <linux/completion.h> | |
63 | #include <linux/init.h> | |
64 | #include <linux/interrupt.h> | |
5dde66b4 | 65 | @@ -505,15 +504,6 @@ static int aac_slave_configure(struct scsi_device *sdev) |
53226238 FG |
66 | return 0; |
67 | } | |
68 | ||
69 | -static void aac_map_queues(struct Scsi_Host *shost) | |
70 | -{ | |
71 | - struct aac_dev *aac = (struct aac_dev *)shost->hostdata; | |
72 | - | |
73 | - blk_mq_pci_map_queues(&shost->tag_set.map[HCTX_TYPE_DEFAULT], | |
74 | - aac->pdev, 0); | |
75 | - aac->use_map_queue = true; | |
76 | -} | |
77 | - | |
78 | /** | |
79 | * aac_change_queue_depth - alter queue depths | |
80 | * @sdev: SCSI device we are considering | |
81 | @@ -1498,7 +1488,6 @@ static const struct scsi_host_template aac_driver_template = { | |
82 | .bios_param = aac_biosparm, | |
83 | .shost_groups = aac_host_groups, | |
84 | .slave_configure = aac_slave_configure, | |
85 | - .map_queues = aac_map_queues, | |
86 | .change_queue_depth = aac_change_queue_depth, | |
87 | .sdev_groups = aac_dev_groups, | |
88 | .eh_abort_handler = aac_eh_abort, | |
89 | @@ -1786,8 +1775,6 @@ static int aac_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) | |
90 | shost->max_lun = AAC_MAX_LUN; | |
91 | ||
92 | pci_set_drvdata(pdev, shost); | |
93 | - shost->nr_hw_queues = aac->max_msix; | |
94 | - shost->host_tagset = 1; | |
95 | ||
96 | error = scsi_add_host(shost, &pdev->dev); | |
97 | if (error) | |
98 | @@ -1919,7 +1906,6 @@ static void aac_remove_one(struct pci_dev *pdev) | |
99 | struct aac_dev *aac = (struct aac_dev *)shost->hostdata; | |
100 | ||
101 | aac_cancel_rescan_worker(aac); | |
102 | - aac->use_map_queue = false; | |
103 | scsi_remove_host(shost); | |
104 | ||
105 | __aac_shutdown(aac); | |
106 | diff --git a/drivers/scsi/aacraid/src.c b/drivers/scsi/aacraid/src.c | |
5dde66b4 | 107 | index 61949f374188..11ef58204e96 100644 |
53226238 FG |
108 | --- a/drivers/scsi/aacraid/src.c |
109 | +++ b/drivers/scsi/aacraid/src.c | |
110 | @@ -493,10 +493,6 @@ static int aac_src_deliver_message(struct fib *fib) | |
111 | #endif | |
112 | ||
113 | u16 vector_no; | |
114 | - struct scsi_cmnd *scmd; | |
115 | - u32 blk_tag; | |
116 | - struct Scsi_Host *shost = dev->scsi_host_ptr; | |
117 | - struct blk_mq_queue_map *qmap; | |
118 | ||
119 | atomic_inc(&q->numpending); | |
120 | ||
121 | @@ -509,25 +505,8 @@ static int aac_src_deliver_message(struct fib *fib) | |
122 | if ((dev->comm_interface == AAC_COMM_MESSAGE_TYPE3) | |
123 | && dev->sa_firmware) | |
124 | vector_no = aac_get_vector(dev); | |
125 | - else { | |
126 | - if (!fib->vector_no || !fib->callback_data) { | |
127 | - if (shost && dev->use_map_queue) { | |
128 | - qmap = &shost->tag_set.map[HCTX_TYPE_DEFAULT]; | |
129 | - vector_no = qmap->mq_map[raw_smp_processor_id()]; | |
130 | - } | |
131 | - /* | |
132 | - * We hardcode the vector_no for | |
133 | - * reserved commands as a valid shost is | |
134 | - * absent during the init | |
135 | - */ | |
136 | - else | |
137 | - vector_no = 0; | |
138 | - } else { | |
139 | - scmd = (struct scsi_cmnd *)fib->callback_data; | |
140 | - blk_tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmd)); | |
141 | - vector_no = blk_mq_unique_tag_to_hwq(blk_tag); | |
142 | - } | |
143 | - } | |
144 | + else | |
145 | + vector_no = fib->vector_no; | |
146 | ||
147 | if (native_hba) { | |
148 | if (fib->flags & FIB_CONTEXT_FLAG_NATIVE_HBA_TMF) { |