[S390] cio: fix double unregistering of subchannels
In some cases where the channel subsystem decides to drop a subchannel device device_unregister may be called twice, which results in an oops. The patch prevents this by only unregistering registered devices. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
e0bc24958e
commit
ef60cd13ec
|
@ -164,7 +164,8 @@ static int css_sch_device_register(struct subchannel *sch)
|
|||
void css_sch_device_unregister(struct subchannel *sch)
|
||||
{
|
||||
mutex_lock(&sch->reg_mutex);
|
||||
device_unregister(&sch->dev);
|
||||
if (device_is_registered(&sch->dev))
|
||||
device_unregister(&sch->dev);
|
||||
mutex_unlock(&sch->reg_mutex);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(css_sch_device_unregister);
|
||||
|
|
Loading…
Reference in New Issue