| From f4923b0b32a74e568788ef6bafe5a6736cb10aaa Mon Sep 17 00:00:00 2001 |
| From: Marc Kleine-Budde <mkl@pengutronix.de> |
| Date: Fri, 3 Jul 2020 12:33:15 +0200 |
| Subject: [PATCH] regmap: dev_get_regmap_match(): fix string comparison |
| |
| commit e84861fec32dee8a2e62bbaa52cded6b05a2a456 upstream. |
| |
| This function is used by dev_get_regmap() to retrieve a regmap for the |
| specified device. If the device has more than one regmap, the name parameter |
| can be used to specify one. |
| |
| The code here uses a pointer comparison to check for equal strings. This |
| however will probably always fail, as the regmap->name is allocated via |
| kstrdup_const() from the regmap's config->name. |
| |
| Fix this by using strcmp() instead. |
| |
| Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> |
| Link: https://lore.kernel.org/r/20200703103315.267996-1-mkl@pengutronix.de |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c |
| index 320d23de02c2..927ebde1607b 100644 |
| --- a/drivers/base/regmap/regmap.c |
| +++ b/drivers/base/regmap/regmap.c |
| @@ -1363,7 +1363,7 @@ static int dev_get_regmap_match(struct device *dev, void *res, void *data) |
| |
| /* If the user didn't specify a name match any */ |
| if (data) |
| - return (*r)->name == data; |
| + return !strcmp((*r)->name, data); |
| else |
| return 1; |
| } |
| -- |
| 2.27.0 |
| |