Numonyx NOR and chip->mutex bug?
Joakim Tjernlund
joakim.tjernlund at transmode.se
Fri Feb 4 07:42:33 EST 2011
> >
> > Stefan Bigler <stefan.bigler at keymile.com> wrote on 2011/02/04 12:04:40:
> > >
> > > Hi Jocke
> > >
> > > The code does the same, but is much nicer :-)
> > > My test is also working again.
> >
> > Thinking a little more one could do:
> > if (chip->state == chip_state) {
> > status = map_read(map, cmd_adr);
> > if (map_word_andequal(map, status, status_OK, status_OK))
> > break;
> > }
>
> This is a bit unoptimal too:
> #define XIP_INVAL_CACHED_RANGE(x...)
> #define INVAL_CACHE_AND_WAIT inval_cache_and_wait_for_operation
>
> ....
>
> mutex_unlock(&chip->mutex);
> if (inval_len)
> INVALIDATE_CACHED_RANGE(map, inval_adr, inval_len);
> mutex_lock(&chip->mutex);
>
> XIP_INVAL_CACHED_RANGE is always a nop but still we drop and take the lock.
> Just a waste of CPU.
Duuh, disregard
More information about the linux-mtd
mailing list