diff options
author | Stefan Bader <shbader@de.ibm.com> | 2006-12-15 17:18:30 +0100 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-12-15 17:18:30 +0100 |
commit | e42734e270b9e5ada83188d73b733533ce11ee4a (patch) | |
tree | a74c6f8eb8e517bcd3c85cd18bf9005231ad8e92 /drivers/s390 | |
parent | da1cf23efe0c067ef95e4702b386e6e1baab10c7 (diff) |
[S390] cio: css_register_subchannel race.
Asynchronous probe can release memory of a subchannel before
css_get_ssd_info is called. To fix this call css_get_ssd_info
before registering with driver core.
Signed-off-by: Stefan Bader <shbader@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/cio/css.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index 4c81d890791..9d6c0244686 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c @@ -139,6 +139,8 @@ css_register_subchannel(struct subchannel *sch) sch->dev.release = &css_subchannel_release; sch->dev.groups = subch_attr_groups; + css_get_ssd_info(sch); + /* make it known to the system */ ret = css_sch_device_register(sch); if (ret) { @@ -146,7 +148,6 @@ css_register_subchannel(struct subchannel *sch) __func__, sch->dev.bus_id); return ret; } - css_get_ssd_info(sch); return ret; } |