]> git.baikalelectronics.ru Git - kernel.git/commit
s390/dasd: fix list_del corruption after lcu changes
authorStefan Haberland <stefan.haberland@de.ibm.com>
Wed, 14 Oct 2015 09:01:05 +0000 (11:01 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 15 Oct 2015 07:28:15 +0000 (09:28 +0200)
commit87ebfb6bdc6b71d81d014a390c78699c111d7164
tree04cf85271047a5689b54976954cdb955bc39f93c
parent86fa7eae8b8652c01a6f8bfe388ce45bd2354ad8
s390/dasd: fix list_del corruption after lcu changes

A summary unit check occurs when the lcu updates the PAV configuration
e.g. base PAV assignment or PAV mode at all. This requires the reset
of the drivers internal pavgroups. Therefore the alias devices are
flushed and moved via a temporary list to the active_devices list
where they are not associated with a pavgroup. In conjunction with
updates to the base device the pavgroup may be removed since both
base_list and alias_list are empty. Unfortunately during alias flush
and move to the active_device list from alias_list the pavgroup
pointer is not deleted in the device private structure. This leads to
a list del_corruption if another lcu_update tries to move the device
in the non existent pavgroup.

Fix by removing the pavgroup pointer after the alias device was moved
to the active_devices list.

Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/block/dasd_alias.c