diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-09-30 12:38:28 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-09-30 12:38:28 +0200 |
commit | d7e25c66c9bf882450060fd9464e784bd229d3ae (patch) | |
tree | 0fb9525f91b11226a5a4b861cefd9fc5679f5c9b /drivers/base/regmap/regmap.c | |
parent | 907241dccb4ce5d9413cf3c030b32b0cfc184914 (diff) | |
parent | e4aad64597d7a2455a541f904365b48d607916db (diff) | |
download | linux-d7e25c66c9bf882450060fd9464e784bd229d3ae.tar.bz2 |
Merge branch 'x86/urgent' into x86/asm
Get the cr4 fixes so we can apply the final cleanup
Diffstat (limited to 'drivers/base/regmap/regmap.c')
-rw-r--r-- | drivers/base/regmap/regmap.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index 25d26bb18970..e964d068874d 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -1475,7 +1475,11 @@ int _regmap_raw_write(struct regmap *map, unsigned int reg, kfree(buf); } else if (ret != 0 && !map->cache_bypass && map->format.parse_val) { - regcache_drop_region(map, reg, reg + 1); + /* regcache_drop_region() takes lock that we already have, + * thus call map->cache_ops->drop() directly + */ + if (map->cache_ops && map->cache_ops->drop) + map->cache_ops->drop(map, reg, reg + 1); } trace_regmap_hw_write_done(map, reg, val_len / map->format.val_bytes); |