diff options
author | Xiaojun Sang <xsang@codeaurora.org> | 2016-09-20 15:41:11 +0800 |
---|---|---|
committer | Xiaojun Sang <xsang@codeaurora.org> | 2016-09-22 23:53:41 +0800 |
commit | 7cbf41a259f847866d0d8590110867258470e1ba (patch) | |
tree | 336ea9ab4ca5e1964d5f0d71bd5fd9d9041e5f30 /drivers/base | |
parent | 4e2a8a0fa1c78712904312e13ef33d02be78d421 (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.c | 14 |
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; |