cfi_flash: do not reset flash when probe fails
The CFI flash driver starts at flash_init() which calls down into
flash_get_size().  This starts by calling flash_detect_cfi().  If said
function fails, flash_get_size() finishes by attempting to reset the
flash.  Unfortunately, it does this with an info->portwidth set to 0x10
which filters down into flash_make_cmd() and that happily smashes the
stack by sticking info->portwidth bytes into a cfiword_t variable that
lives on the stack.  On a 64bit system you probably won't notice, but
killing the last 8 bytes on a 32bit system usually leads to a corrupt
return address.  Which is what happens on a Blackfin system.

based on U-Boot

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
WIP_next-LS master next stable/v2013.05 stable/v2013.06 stable/v2013.07 stable/v2013.08 stable/v2013.10 stable/v2014.05 stable/v2014.06 stable/v2014.07 stable/v2014.08 stable/v2014.09 stable/v2014.10 stable/v2014.11 stable/v2014.12 stable/v2015.01 stable/v2015.02 stable/v2017.05 stable/v2017.06 stable/v2017.07 stable/v2017.11 stable/v2018.07 stable/v2018.09 stable/v2018.12 v2011.03-stable work/fit-support v2020.07.0 v2020.06.0 v2020.05.0 v2020.04.0 v2020.03.0 v2020.02.0 v2020.01.0 v2019.12.0 v2019.11.0 v2019.10.0 v2019.09.0 v2019.08.1 v2019.08.0 v2019.07.0 v2019.06.1 v2019.06.0 v2019.05.0 v2019.04.0 v2019.03.0 v2019.02.0 v2019.01.0 v2018.12.0 v2018.11.0 v2018.10.0 v2018.09.1 v2018.09.0 v2018.08.1 v2018.08.0 v2018.07.2 v2018.07.1 v2018.07.0 v2018.06.0 v2018.05.0 v2018.04.0 v2018.03.0 v2018.02.0 v2018.01.0 v2017.12.0 v2017.11.0 v2017.10.0 v2017.09.0 v2017.08.0 v2017.07.1 v2017.07.0 v2017.06.2 v2017.06.1 v2017.06.0 v2017.05.4 v2017.05.3 v2017.05.2 v2017.05.1 v2017.05.0 v2017.04.0 v2017.03.0 v2017.02.0 v2017.01.0 v2016.11.0 v2016.10.0 v2016.09.0 v2016.08.0 v2016.07.0 v2016.06.0 v2016.05.0 v2016.04.0 v2016.03.0 v2016.02.0 v2016.01.0 v2015.12.0 v2015.11.0 v2015.10.0 v2015.09.0 v2015.08.0 v2015.07.0 v2015.06.0 v2015.05.0 v2015.04.0 v2015.03.0 v2015.02.0 v2015.01.0 v2014.12.0 v2014.11.0 v2014.10.0 v2014.09.0 v2014.08.0 v2014.07.0 v2014.06.0 v2014.05.0 v2014.04.0 v2014.03.0 v2014.02.0 v2014.01.0 v2013.12.0 v2013.11.0 v2013.10.1 v2013.10.0 v2013.09.0 v2013.08.1 v2013.08.0 v2013.07.0 v2013.06.1 v2013.06.0 v2013.05.1 v2013.05.0 v2013.04.0 v2013.03.0 v2013.02.0 v2013.01.0 v2012.12.1 v2012.12.0 v2012.11.0 v2012.10.0 v2012.09.0 v2012.08.0 v2012.07.0 v2012.06.0 v2012.05.0 v2012.04.0 v2012.03.0 v2012.02.0 v2012.01.0 v2011.12.0 v2011.11.0 v2011.10.0 v2011.09.0 v2011.08.0 v2011.07.0 v2011.06.0 v2011.05.0 v2011.04.0-phytec-pcm049 v2011.04.0 v2011.03.1 v2011.03.0 v2011.02.0 v2011.01.0
1 parent fec9928 commit 04191aa0fc14eb01a750641343e5e0b98d7725c6
@Jean-Christophe PLAGNIOL-VILLARD Jean-Christophe PLAGNIOL-VILLARD authored on 26 Nov 2010
Showing 1 changed file
View
drivers/nor/cfi_flash.c