summaryrefslogtreecommitdiff
path: root/drivers/base
diff options
context:
space:
mode:
authorXiaojun Sang <xsang@codeaurora.org>2016-09-20 15:41:11 +0800
committerXiaojun Sang <xsang@codeaurora.org>2016-09-22 23:53:41 +0800
commit7cbf41a259f847866d0d8590110867258470e1ba (patch)
tree336ea9ab4ca5e1964d5f0d71bd5fd9d9041e5f30 /drivers/base
parent4e2a8a0fa1c78712904312e13ef33d02be78d421 (diff)
ASoC: soundwire: add null check before pointer dereference.
Pointer to soundwire register map returned from dev_get_name may be null. Add null check before dereference. CRs-Fixed: 1059492 Change-Id: I0d96a64b866f4ef10e237e8780fefbd8139a878d Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/regmap/regmap-swr.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/base/regmap/regmap-swr.c b/drivers/base/regmap/regmap-swr.c
index 027cbfc505ab..1641c374b189 100644
--- a/drivers/base/regmap/regmap-swr.c
+++ b/drivers/base/regmap/regmap-swr.c
@@ -28,11 +28,16 @@ static int regmap_swr_gather_write(void *context,
struct device *dev = context;
struct swr_device *swr = to_swr_device(dev);
struct regmap *map = dev_get_regmap(dev, NULL);
- size_t addr_bytes = map->format.reg_bytes;
+ size_t addr_bytes;
size_t val_bytes;
int i, ret = 0;
u16 reg_addr = 0;
+ if (map == NULL) {
+ dev_err(dev, "%s: regmap is NULL\n", __func__);
+ return -EINVAL;
+ }
+ addr_bytes = map->format.reg_bytes;
if (swr == NULL) {
dev_err(dev, "%s: swr device is NULL\n", __func__);
return -EINVAL;
@@ -154,10 +159,15 @@ static int regmap_swr_read(void *context,
struct device *dev = context;
struct swr_device *swr = to_swr_device(dev);
struct regmap *map = dev_get_regmap(dev, NULL);
- size_t addr_bytes = map->format.reg_bytes;
+ size_t addr_bytes;
int ret = 0;
u16 reg_addr = 0;
+ if (map == NULL) {
+ dev_err(dev, "%s: regmap is NULL\n", __func__);
+ return -EINVAL;
+ }
+ addr_bytes = map->format.reg_bytes;
if (swr == NULL) {
dev_err(dev, "%s: swr is NULL\n", __func__);
return -EINVAL;