netiucv: Hold rtnl between name allocation and device registration.
authorBenjamin Poirier <bpoirier@suse.de>
Thu, 13 Jun 2013 13:09:47 +0000 (09:09 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Jun 2013 00:41:18 +0000 (17:41 -0700)
commitaaf9522d62d18626a60f7f2080671d853d9e8681
treeb2dd6cacffe0f504e2ab6f4dcc7bfd16208ae13b
parentc9bfbb31af7c8428267b34eb9706a621ac219a28
netiucv: Hold rtnl between name allocation and device registration.

fixes a race condition between concurrent initializations of netiucv devices
that try to use the same name.

sysfs: cannot create duplicate filename '/devices/iucv/netiucv2'
[...]
Call Trace:
([<00000000002edea4>] sysfs_add_one+0xb0/0xdc)
 [<00000000002eecd4>] create_dir+0x80/0xfc
 [<00000000002eee38>] sysfs_create_dir+0xe8/0x118
 [<00000000003835a8>] kobject_add_internal+0x120/0x2d0
 [<00000000003839d6>] kobject_add+0x62/0x9c
 [<00000000003d9564>] device_add+0xcc/0x510
 [<000003e00212c7b4>] netiucv_register_device+0xc0/0x1ec [netiucv]

Signed-off-by: Benjamin Poirier <bpoirier@suse.de>
Tested-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/netiucv.c