]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob
14e7bfc35319b3cf5012f0f47dc29688e5d8f8fb
[thirdparty/kernel/stable-queue.git] /
1 From d9083160c2f6ee456ea867ea2279c1fc6124e56f Mon Sep 17 00:00:00 2001
2 From: Sumit Saxena <sumit.saxena@broadcom.com>
3 Date: Fri, 8 Jul 2016 03:30:16 -0700
4 Subject: megaraid_sas: Do not fire MR_DCMD_PD_LIST_QUERY to controllers which do not support it
5
6 From: Sumit Saxena <sumit.saxena@broadcom.com>
7
8 commit d9083160c2f6ee456ea867ea2279c1fc6124e56f upstream.
9
10 There was an issue reported by Lucz Geza on Dell Perc 6i. As per issue
11 reported, megaraid_sas driver goes into an infinite error reporting loop
12 as soon as there is a change in the status of one of the
13 arrays (degrade, resync online etc ). Below are the error logs reported
14 continuously-
15
16 Jun 25 08:49:30 ns8 kernel: [ 757.757017] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
17 Jun 25 08:49:30 ns8 kernel: [ 757.778017] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
18 Jun 25 08:49:30 ns8 kernel: [ 757.799017] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
19 Jun 25 08:49:30 ns8 kernel: [ 757.820018] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
20 Jun 25 08:49:30 ns8 kernel: [ 757.841018] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
21
22 This issue is very much specific to controllers which do not support
23 DCMD- MR_DCMD_PD_LIST_QUERY. In case of any hotplugging/rescanning of
24 drives, AEN thread will be scheduled by driver and fire DCMD-
25 MR_DCMD_PD_LIST_QUERY and if this DCMD is failed then driver will fail
26 this event processing and will not go ahead for further events. This
27 will cause infinite loop of same event getting retried infinitely and
28 causing above mentioned logs.
29
30 Fix for this problem is: not to fire DCMD MR_DCMD_PD_LIST_QUERY for
31 controllers which do not support it and send DCMD SUCCESS status to AEN
32 function so that it can go ahead with other event processing.
33
34 Reported-by: Lucz Geza <geza@lucz.com>
35 Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
36 Reviewed-by: Tomas Henzl <thenzl@redhat.com>
37 Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
38 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
39
40 ---
41 drivers/scsi/megaraid/megaraid_sas_base.c | 6 ++++++
42 1 file changed, 6 insertions(+)
43
44 --- a/drivers/scsi/megaraid/megaraid_sas_base.c
45 +++ b/drivers/scsi/megaraid/megaraid_sas_base.c
46 @@ -4079,6 +4079,12 @@ megasas_get_pd_list(struct megasas_insta
47 struct MR_PD_ADDRESS *pd_addr;
48 dma_addr_t ci_h = 0;
49
50 + if (instance->pd_list_not_supported) {
51 + dev_info(&instance->pdev->dev, "MR_DCMD_PD_LIST_QUERY "
52 + "not supported by firmware\n");
53 + return ret;
54 + }
55 +
56 cmd = megasas_get_cmd(instance);
57
58 if (!cmd) {