diff --git a/[refs] b/[refs] index 4179c1c87bb3..bae52e121393 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6f5a416216fe2c39171326897e074d417df1082b +refs/heads/master: 63fcf10db218a89cbd1e34c47540c3e28706cff1 diff --git a/trunk/drivers/staging/spectra/ffsport.c b/trunk/drivers/staging/spectra/ffsport.c index c6b4a2d16850..c3849e9b66d3 100644 --- a/trunk/drivers/staging/spectra/ffsport.c +++ b/trunk/drivers/staging/spectra/ffsport.c @@ -28,6 +28,7 @@ #include #include #include +#include /**** Helper functions used for Div, Remainder operation on u64 ****/ @@ -729,7 +730,7 @@ static void create_sysfs_entry(struct device *dev) } */ -int register_spectra_ftl() +static void register_spectra_ftl_async(void *unused, async_cookie_t cookie) { int i; @@ -738,7 +739,7 @@ int register_spectra_ftl() if (PASS != GLOB_FTL_IdentifyDevice(&IdentifyDeviceData)) { printk(KERN_ERR "Spectra: Unable to Read Flash Device. " "Aborting\n"); - return -ENOMEM; + return; } else { nand_dbg_print(NAND_DBG_WARN, "In GLOB_SBD_init: " "Num blocks=%d, pagesperblock=%d, " @@ -772,15 +773,19 @@ int register_spectra_ftl() "Spectra: module loaded with major number %d\n", GLOB_SBD_majornum); - return PASS; + return; out_blk_register: unregister_blkdev(GLOB_SBD_majornum, GLOB_SBD_NAME); out_ftl_flash_register: GLOB_FTL_Cache_Release(); printk(KERN_ERR "Spectra: Module load failed.\n"); +} - return FAIL; +int register_spectra_ftl() +{ + async_schedule(register_spectra_ftl_async, NULL); + return 0; } EXPORT_SYMBOL_GPL(register_spectra_ftl);