USB: cxacru: create sysfs attributes in atm_start instead of bind
commitda1f82b5543738d4c127a449490bc0d55e121fe8
authorSimon Arlott <simon@fire.lp0.eu>
Fri, 11 May 2007 06:04:12 +0000 (10 23:04 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 8 Jun 2007 23:24:31 +0000 (8 16:24 -0700)
tree88562272ac2a5a28f682eee1f44272890f42db52
parent64b85006f5d473fefc181dece9473710b55966e0
USB: cxacru: create sysfs attributes in atm_start instead of bind

Since usbatm doesn't set the usb_interface driver data until after calling
bind and heavy_init, it would be NULL when the sysfs attributes are read.
Reading the MAC address from atm_dev before atm_dev exists would have been
be possible too.

Calling create_device_file in atm_start will avoid this problem, and the
data is useless until the first status poll runs.  However, it must be
ready before a status poll does a printk on line status change otherwise
userspace could react before the files exist.

For completeness I've moved remove_device_file to atm_stop so it's not
called in unbind when it's not needed.  There's no point starting ADSL if
atm_start could still fail either.

Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
Cc: Duncan Sands <duncan.sands@math.u-psud.fr>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/atm/cxacru.c