From: Sergey SENOZHATSKY Date: Mon, 31 Aug 2015 09:54:58 +0000 (+0900) Subject: regmap: fix a NULL pointer dereference in __regmap_init X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=17649c90ff4c5246bb4babf6260029968a6d119d;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git regmap: fix a NULL pointer dereference in __regmap_init __regmap_init() may receive a NULL `struct regmap_bus *bus' pointer, for example, from snd_hdac_regmap_init(), and it make sure that it does not NULL deference `bus`, except around ->max_raw_read and ->max_raw_write initialisation. Add missing check. Signed-off-by: Sergey Senozhatsky Signed-off-by: Mark Brown --- diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index d2efa4b33294..2ffdb62f75f7 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -579,8 +579,10 @@ struct regmap *regmap_init(struct device *dev, map->use_single_read = config->use_single_rw || !bus || !bus->read; map->use_single_write = config->use_single_rw || !bus || !bus->write; map->can_multi_write = config->can_multi_write && bus && bus->write; - map->max_raw_read = bus->max_raw_read; - map->max_raw_write = bus->max_raw_write; + if (bus) { + map->max_raw_read = bus->max_raw_read; + map->max_raw_write = bus->max_raw_write; + } map->dev = dev; map->bus = bus; map->bus_context = bus_context;