diff options
Diffstat (limited to 'kernel/xpp/xbus-sysfs.c')
-rw-r--r-- | kernel/xpp/xbus-sysfs.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/xpp/xbus-sysfs.c b/kernel/xpp/xbus-sysfs.c index 04bc24e..87a58f1 100644 --- a/kernel/xpp/xbus-sysfs.c +++ b/kernel/xpp/xbus-sysfs.c @@ -46,7 +46,7 @@ static const char rcsid[] = "$Id$"; /* Command line parameters */ -extern int print_dbg; +extern int debug; /* Kernel versions... */ @@ -355,6 +355,9 @@ void xbus_sysfs_remove(xbus_t *xbus) XBUS_DBG(GENERAL, xbus, "\n"); astribank = &xbus->astribank; BUG_ON(!astribank); + if(!astribank->driver_data) + return; + BUG_ON(astribank->driver_data != xbus); #ifdef SAMPLE_TICKS device_remove_file(&xbus->astribank, &dev_attr_samples); #endif @@ -379,7 +382,7 @@ int xbus_sysfs_create(xbus_t *xbus) astribank->bus = &xpp_bus_type; astribank->parent = &xpp_bus; snprintf(astribank->bus_id, BUS_ID_SIZE, "xbus-%02d", xbus->num); - astribank->driver_data = NULL; /* FIXME: add some usefull data */ + astribank->driver_data = NULL; /* override below */ astribank->release = xpp_dev_release; ret = device_register(astribank); if(ret) { @@ -418,6 +421,7 @@ int xbus_sysfs_create(xbus_t *xbus) goto out; } #endif + astribank->driver_data = xbus; /* Everything is good */ out: return ret; } |