aboutsummaryrefslogtreecommitdiff
path: root/drivers/mtd/lpddr/lpddr_cmds.c
diff options
context:
space:
mode:
authorSebastian Ott <[email protected]>2009-06-22 12:08:21 +0200
committerMartin Schwidefsky <[email protected]>2009-06-22 12:08:23 +0200
commit181d95229b0931ee2ce6aad7348079cbc10e8d05 (patch)
tree9962496049dad3c4ed5695d09886d0804be51462 /drivers/mtd/lpddr/lpddr_cmds.c
parente98bbaafcd1c47d30f3245517fb585f1aaaca4db (diff)
[S390] dasd: fix refcounting in dasd_change_state
To set a dasd online dasd_change_state is called twice. The first cycle will schedule initial analysis of the device, set the rc to -EAGAIN and will not touch the device state any more. The initial analysis will in turn call dasd_change_state to increase the state to the final DASD_STATE_ONLINE. If the dasd_change_state on the second thread outruns the other one both finish with the state set to DASD_STATE_ONLINE and the device refcount will be decreased by 2. Fix this by leaving dasd_change_state on rc == -EAGAIN so that the refcount will always be decreased by 1. Signed-off-by: Sebastian Ott <[email protected]> Signed-off-by: Martin Schwidefsky <[email protected]>
Diffstat (limited to 'drivers/mtd/lpddr/lpddr_cmds.c')
0 files changed, 0 insertions, 0 deletions