mtd: m25p80: fix allocation size
authorBrian Norris <computersforpeace@gmail.com>
Thu, 25 Jul 2013 01:32:07 +0000 (18:32 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 3 Jan 2014 04:33:18 +0000 (04:33 +0000)
commit2a4c85e77b4bd77a83382f74c99da1c388a0fab2
tree451ca3487791b6a0fa714acbac5234f42b9aef87
parenteba485ec7b69e8b8dfd700ae9e0779865f877644
mtd: m25p80: fix allocation size

commit 778d226a1462572b51d6777cdb1d611543410cb4 upstream.

This patch fixes two memory errors:

1. During a probe failure (in mtd_device_parse_register?) the command
   buffer would not be freed.

2. The command buffer's size is determined based on the 'fast_read'
   boolean, but the assignment of fast_read is made after this
   allocation. Thus, the buffer may be allocated "too small".

To fix the first, just switch to the devres version of kzalloc.

To fix the second, increase MAX_CMD_SIZE unconditionally. It's not worth
saving a byte to fiddle around with the conditions here.

This problem was reported by Yuhang Wang a while back.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reported-by: Yuhang Wang <wangyuhang2014@gmail.com>
Reviewed-by: Sourav Poddar <sourav.poddar@ti.com>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/mtd/devices/m25p80.c