Merge remote-tracking branch 'regmap/fix/core' into regmap-linus
[pandora-kernel.git] / drivers / base / regmap / regmap.c
index 1cf427b..3a785a4 100644 (file)
@@ -1408,7 +1408,7 @@ int _regmap_write(struct regmap *map, unsigned int reg,
        }
 
 #ifdef LOG_DEVICE
-       if (strcmp(dev_name(map->dev), LOG_DEVICE) == 0)
+       if (map->dev && strcmp(dev_name(map->dev), LOG_DEVICE) == 0)
                dev_info(map->dev, "%x <= %x\n", reg, val);
 #endif
 
@@ -1659,6 +1659,9 @@ out:
        } else {
                void *wval;
 
+               if (!val_count)
+                       return -EINVAL;
+
                wval = kmemdup(val, val_count * val_bytes, GFP_KERNEL);
                if (!wval) {
                        dev_err(map->dev, "Error in memory allocation\n");
@@ -2058,7 +2061,7 @@ static int _regmap_read(struct regmap *map, unsigned int reg,
        ret = map->reg_read(context, reg, val);
        if (ret == 0) {
 #ifdef LOG_DEVICE
-               if (strcmp(dev_name(map->dev), LOG_DEVICE) == 0)
+               if (map->dev && strcmp(dev_name(map->dev), LOG_DEVICE) == 0)
                        dev_info(map->dev, "%x => %x\n", reg, *val);
 #endif