diff options
author | Greg Kroah-Hartman <gregkh@google.com> | 2017-08-14 23:12:30 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-08-14 23:12:30 +0000 |
commit | ea2f8e8ce0074d79eaee4a514750b94457d8e5ad (patch) | |
tree | 923cf94d70b6f88d6a406005fbb9368e1b0f01c0 /drivers/scsi/qla2xxx/qla_attr.c | |
parent | 84e1e3224b4d97bae8fd5bc6a67ab4900c4d5f21 (diff) | |
parent | ca4226385d9c5299108e261921f9849572fd5d10 (diff) | |
download | v4.4-ea2f8e8ce0074d79eaee4a514750b94457d8e5ad.tar.gz |
Merge 4.4.81 into android-4.4 am: dfff30bca9
am: ca4226385d
Change-Id: Id1f751744e0dc75a6a73c19af6dda15a46d2c842
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_attr.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_attr.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 6b942d9e5b74..1ed85dfc008d 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c @@ -329,12 +329,15 @@ qla2x00_sysfs_read_optrom(struct file *filp, struct kobject *kobj, struct qla_hw_data *ha = vha->hw; ssize_t rval = 0; + mutex_lock(&ha->optrom_mutex); + if (ha->optrom_state != QLA_SREADING) - return 0; + goto out; - mutex_lock(&ha->optrom_mutex); rval = memory_read_from_buffer(buf, count, &off, ha->optrom_buffer, ha->optrom_region_size); + +out: mutex_unlock(&ha->optrom_mutex); return rval; @@ -349,14 +352,19 @@ qla2x00_sysfs_write_optrom(struct file *filp, struct kobject *kobj, struct device, kobj))); struct qla_hw_data *ha = vha->hw; - if (ha->optrom_state != QLA_SWRITING) + mutex_lock(&ha->optrom_mutex); + + if (ha->optrom_state != QLA_SWRITING) { + mutex_unlock(&ha->optrom_mutex); return -EINVAL; - if (off > ha->optrom_region_size) + } + if (off > ha->optrom_region_size) { + mutex_unlock(&ha->optrom_mutex); return -ERANGE; + } if (off + count > ha->optrom_region_size) count = ha->optrom_region_size - off; - mutex_lock(&ha->optrom_mutex); memcpy(&ha->optrom_buffer[off], buf, count); mutex_unlock(&ha->optrom_mutex); |