From: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
To: jejb@linux.vnet.ibm.com, martin.petersen@oracle.com,
linux-scsi@vger.kernel.org
Cc: Scott.Benesh@microsemi.com, tom.white@microsemi.com,
aacraid@microsemi.com,
"Guilherme G . Piccoli" <gpiccoli@linux.vnet.ibm.com>,
Bart Van Assche <Bart.VanAssche@wdc.com>
Subject: [PATCH v2 01/30] scsi: aacraid: Fix udev inquiry race condition
Date: Tue, 26 Dec 2017 20:34:22 -0800 [thread overview]
Message-ID: <20171227043451.27813-2-RaghavaAditya.Renukunta@microsemi.com> (raw)
In-Reply-To: <20171227043451.27813-1-RaghavaAditya.Renukunta@microsemi.com>
When udev requests for a devices inquiry string, it might create multiple
threads causing a race condition on the shared inquiry resource string.
Created a buffer with the string for each thread.
Cc: <stable@vger.kernel.org>
Fixes: 3bc8070fb75b3315 ([SCSI] aacraid: SMC vendor identification)
Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
---
Changes in V2:
Replaced kmalloc and memcpy adapter_type_text with kmemdup
drivers/scsi/aacraid/aachba.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index af3e4d3..548a3e7 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -913,8 +913,16 @@ static void setinqstr(struct aac_dev *dev, void *data, int tindex)
memset(str, ' ', sizeof(*str));
if (sup_adap_info->adapter_type_text[0]) {
- char *cp = sup_adap_info->adapter_type_text;
int c;
+ char *cp;
+ char *cname = kmemdup(sup_adap_info->adapter_type_text,
+ sizeof(sup_adap_info->adapter_type_text),
+ GFP_ATOMIC);
+
+ if (!cname)
+ return;
+
+ cp = cname;
if ((cp[0] == 'A') && (cp[1] == 'O') && (cp[2] == 'C'))
inqstrcpy("SMC", str->vid);
else {
@@ -923,7 +931,7 @@ static void setinqstr(struct aac_dev *dev, void *data, int tindex)
++cp;
c = *cp;
*cp = '\0';
- inqstrcpy(sup_adap_info->adapter_type_text, str->vid);
+ inqstrcpy(cname, str->vid);
*cp = c;
while (*cp && *cp != ' ')
++cp;
@@ -937,8 +945,8 @@ static void setinqstr(struct aac_dev *dev, void *data, int tindex)
cp[sizeof(str->pid)] = '\0';
}
inqstrcpy (cp, str->pid);
- if (c)
- cp[sizeof(str->pid)] = c;
+
+ kfree(cname);
} else {
struct aac_driver_ident *mp = aac_get_driver_ident(dev->cardtype);
--
2.9.4
next prev parent reply other threads:[~2017-12-27 4:34 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-27 4:34 [PATCH 00/30] aacraid: Refactor for sas transport and bug fixes Raghava Aditya Renukunta
2017-12-27 4:34 ` Raghava Aditya Renukunta [this message]
2017-12-27 4:34 ` [PATCH v2 02/30] scsi: aacraid: Do not attempt abort when Fw panicked Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 03/30] scsi: aacraid: Fix hang in kdump Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 04/30] scsi: aacraid: Do not remove offlined devices Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 05/30] scsi: aacraid: Fix ioctl reset hang Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 06/30] scsi: aacraid: Allow reset_host sysfs var to recover Panicked Fw Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 07/30] scsi: aacraid: Refactor reset_host store function Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 08/30] scsi: aacraid: Move code to wait for IO completion to shutdown func Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 09/30] scsi: aacraid: Create bmic submission function from bmic identify Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 10/30] scsi: aacraid: Change phy luns function to use common bmic function Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 11/30] scsi: aacraid: Refactor and rename to make mirror existing changes Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 12/30] scsi: aacraid: Add target setup helper function Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 13/30] scsi: aacraid: Untangle targets setup from report phy luns Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 14/30] scsi: aacraid: Move function around to match existing code Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 15/30] scsi: aacraid: Create helper functions to get lun info Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 16/30] scsi: aacraid: Save bmic phy information for each phy Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 17/30] scsi: aacraid: Add helper function to set queue depth Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 18/30] scsi: aacraid: Merge func to get container information Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 19/30] scsi: aacraid: Process hba and container hot plug events in single function Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 20/30] scsi: aacraid: Added macros to help loop through known buses and targets Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 21/30] scsi: aacraid: Refactor resolve luns code and scsi functions Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 22/30] scsi: aacraid: Merge adapter setup with resolve luns Raghava Aditya Renukunta
2018-01-03 10:02 ` Nikola Pajkovsky
2018-01-03 17:00 ` Raghava Aditya Renukunta
2018-01-04 12:36 ` Nikola Pajkovsky
2017-12-27 4:34 ` [PATCH v2 23/30] scsi: aacraid: Block concurrent hotplug event handling Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 24/30] scsi: aacraid: Use hotplug handling function in place of scsi_scan_host Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 25/30] scsi: aacraid: Reschedule host scan in case of failure Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 26/30] scsi: aacraid: Fix hang while scanning in eh recovery Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 27/30] scsi: aacraid: Skip schedule rescan in case of kdump Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 28/30] scsi: aacraid: Remove unused rescan variable Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 29/30] scsi: aacraid: Remove AAC_HIDE_DISK check in queue command Raghava Aditya Renukunta
2017-12-27 4:34 ` [PATCH v2 30/30] scsi: aacraid: Update driver version to 50877 Raghava Aditya Renukunta
2018-01-04 4:28 ` [PATCH 00/30] aacraid: Refactor for sas transport and bug fixes Martin K. Petersen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171227043451.27813-2-RaghavaAditya.Renukunta@microsemi.com \
--to=raghavaaditya.renukunta@microsemi.com \
--cc=Bart.VanAssche@wdc.com \
--cc=Scott.Benesh@microsemi.com \
--cc=aacraid@microsemi.com \
--cc=gpiccoli@linux.vnet.ibm.com \
--cc=jejb@linux.vnet.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=tom.white@microsemi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).