Loading drivers/mmc/core/block.c +5 −26 Original line number Diff line number Diff line Loading @@ -90,7 +90,6 @@ static int max_devices; #define MAX_DEVICES 256 static DEFINE_IDA(mmc_blk_ida); static DEFINE_SPINLOCK(mmc_blk_lock); /* * There is one mmc_blk_data per slot. Loading Loading @@ -163,11 +162,7 @@ static void mmc_blk_put(struct mmc_blk_data *md) if (md->usage == 0) { int devidx = mmc_get_devidx(md->disk); blk_cleanup_queue(md->queue.queue); spin_lock(&mmc_blk_lock); ida_remove(&mmc_blk_ida, devidx); spin_unlock(&mmc_blk_lock); ida_simple_remove(&mmc_blk_ida, devidx); put_disk(md->disk); kfree(md); } Loading Loading @@ -1839,23 +1834,9 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, struct mmc_blk_data *md; int devidx, ret; again: if (!ida_pre_get(&mmc_blk_ida, GFP_KERNEL)) return ERR_PTR(-ENOMEM); spin_lock(&mmc_blk_lock); ret = ida_get_new(&mmc_blk_ida, &devidx); spin_unlock(&mmc_blk_lock); if (ret == -EAGAIN) goto again; else if (ret) return ERR_PTR(ret); if (devidx >= max_devices) { ret = -ENOSPC; goto out; } devidx = ida_simple_get(&mmc_blk_ida, 0, max_devices, GFP_KERNEL); if (devidx < 0) return ERR_PTR(devidx); md = kzalloc(sizeof(struct mmc_blk_data), GFP_KERNEL); if (!md) { Loading Loading @@ -1944,9 +1925,7 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, err_kfree: kfree(md); out: spin_lock(&mmc_blk_lock); ida_remove(&mmc_blk_ida, devidx); spin_unlock(&mmc_blk_lock); ida_simple_remove(&mmc_blk_ida, devidx); return ERR_PTR(ret); } Loading Loading
drivers/mmc/core/block.c +5 −26 Original line number Diff line number Diff line Loading @@ -90,7 +90,6 @@ static int max_devices; #define MAX_DEVICES 256 static DEFINE_IDA(mmc_blk_ida); static DEFINE_SPINLOCK(mmc_blk_lock); /* * There is one mmc_blk_data per slot. Loading Loading @@ -163,11 +162,7 @@ static void mmc_blk_put(struct mmc_blk_data *md) if (md->usage == 0) { int devidx = mmc_get_devidx(md->disk); blk_cleanup_queue(md->queue.queue); spin_lock(&mmc_blk_lock); ida_remove(&mmc_blk_ida, devidx); spin_unlock(&mmc_blk_lock); ida_simple_remove(&mmc_blk_ida, devidx); put_disk(md->disk); kfree(md); } Loading Loading @@ -1839,23 +1834,9 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, struct mmc_blk_data *md; int devidx, ret; again: if (!ida_pre_get(&mmc_blk_ida, GFP_KERNEL)) return ERR_PTR(-ENOMEM); spin_lock(&mmc_blk_lock); ret = ida_get_new(&mmc_blk_ida, &devidx); spin_unlock(&mmc_blk_lock); if (ret == -EAGAIN) goto again; else if (ret) return ERR_PTR(ret); if (devidx >= max_devices) { ret = -ENOSPC; goto out; } devidx = ida_simple_get(&mmc_blk_ida, 0, max_devices, GFP_KERNEL); if (devidx < 0) return ERR_PTR(devidx); md = kzalloc(sizeof(struct mmc_blk_data), GFP_KERNEL); if (!md) { Loading Loading @@ -1944,9 +1925,7 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, err_kfree: kfree(md); out: spin_lock(&mmc_blk_lock); ida_remove(&mmc_blk_ida, devidx); spin_unlock(&mmc_blk_lock); ida_simple_remove(&mmc_blk_ida, devidx); return ERR_PTR(ret); } Loading