cfi_intelext_is_locked() misses get_chip()/put_chip() calls

Ronald Wahl ronald.wahl at raritan.com
Thu Aug 21 11:43:21 PDT 2014


Hi,

a possible fix is renaming the current do_getlockstatus_oneblock() 
function to do_getlockstatus_oneblock_unlocked() and write a new
do_getlockstatus_oneblock() which wraps the *_unlocked function into 
get_chip/put_chip. Additional we need to call the *_unlock function from 
do_xxlock_oneblock because it already helds the chip lock.

- ron

On 21.08.2014 20:13, Ronald Wahl wrote:
> Hi,
>
> cfi_intelext_is_locked() in cfi_cmdset_0001.c calls
> do_getlockstatus_oneblock() withou calling get_chip() before and
> put_chip() afterwards. So chip state is changed without protection.
> This may lead to hanging processes.
>
> Is this analysis correct?
>
> If someone can fix this quickly - fine - but I can also provide a patch.
>
> greets,
> ron
>

-- 
Ronald Wahl - ronald.wahl at raritan.com - Phone +49 375271349-0 Fax -99
Raritan Deutschland GmbH, Kornmarkt 7, 08056 Zwickau, Germany
USt-IdNr. DE813094160, Steuer-Nr. 227/117/01749
Amtsgericht Chemnitz HRB 23605
Geschäftsführung: Stuart Hopper, Ralf Ploenes



More information about the linux-mtd mailing list