Re: [PATCH 1/2] regmap: Add range check in _regmap_raw_read()

2015-02-24 Thread Srinivas Kandagatla
On 24/02/15 08:55, Mark Brown wrote: On Thu, Feb 19, 2015 at 01:02:03PM +, Srinivas Kandagatla wrote: The culprit was in my test code, which I eventually fixed. However I would have expected regmap to do some out of bound check before it tries to access the register space. If I try to

Re: [PATCH 1/2] regmap: Add range check in _regmap_raw_read()

2015-02-24 Thread Mark Brown
On Thu, Feb 19, 2015 at 01:02:03PM +, Srinivas Kandagatla wrote: > The culprit was in my test code, which I eventually fixed. However I would > have expected regmap to do some out of bound check before it tries to access > the register space. > If I try to do an out of bound access via regmap

Re: [PATCH 1/2] regmap: Add range check in _regmap_raw_read()

2015-02-19 Thread Srinivas Kandagatla
On 19/02/15 12:21, Mark Brown wrote: On Thu, Feb 19, 2015 at 11:04:39AM +, Srinivas Kandagatla wrote: On 19/02/15 10:27, Mark Brown wrote: readability. A cheaper check for just max_register would be less concerning but it feels like we're trying to paper over a symptom with this rather

Re: [PATCH 1/2] regmap: Add range check in _regmap_raw_read()

2015-02-19 Thread Mark Brown
On Thu, Feb 19, 2015 at 11:04:39AM +, Srinivas Kandagatla wrote: > On 19/02/15 10:27, Mark Brown wrote: > >readability. A cheaper check for just max_register would be less > >concerning but it feels like we're trying to paper over a symptom with > >this rather than fix a problem. > Yes, just

Re: [PATCH 1/2] regmap: Add range check in _regmap_raw_read()

2015-02-19 Thread Srinivas Kandagatla
On 19/02/15 10:27, Mark Brown wrote: On Thu, Feb 19, 2015 at 08:40:39AM +, Srinivas Kandagatla wrote: + /* Check for readable registers before we start */ + for (i = 0; i < count; i++) + if (!regmap_readable(map, reg + (i * map->reg_stride))) +

Re: [PATCH 1/2] regmap: Add range check in _regmap_raw_read()

2015-02-19 Thread Mark Brown
On Thu, Feb 19, 2015 at 08:40:39AM +, Srinivas Kandagatla wrote: > + /* Check for readable registers before we start */ > + for (i = 0; i < count; i++) > + if (!regmap_readable(map, reg + (i * map->reg_stride))) > + return -EINVAL; That's starting to lo

[PATCH 1/2] regmap: Add range check in _regmap_raw_read()

2015-02-19 Thread Srinivas Kandagatla
regmap_bulk_read() ends up using the path that invokes _regmap_raw_read(), however _regmap_raw_read() never checks if the registers that are accessed are actually readable or within the accessible range. This results in kernel crashes when trying to access registers beyond max_registers. Without t