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