From 7e7cbc6038447b57f71fac6a80c837b6a1cae7d6 Mon Sep 17 00:00:00 2001 From: Matthew Wilcox Date: Wed, 16 Mar 2011 16:52:19 -0400 Subject: [PATCH] --- yaml --- r: 286284 b: refs/heads/master c: 9ecdc946212f7cd592986b2c519b470404caa6b8 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/nvme.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index f842b2d6543e..e593503205aa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3cb967c03926edd2c414082f4cc0feb7b372edae +refs/heads/master: 9ecdc946212f7cd592986b2c519b470404caa6b8 diff --git a/trunk/drivers/block/nvme.c b/trunk/drivers/block/nvme.c index 8d3c0b79ac2b..f94f1731478f 100644 --- a/trunk/drivers/block/nvme.c +++ b/trunk/drivers/block/nvme.c @@ -221,12 +221,7 @@ static void cancel_cmdid_data(struct nvme_queue *nvmeq, int cmdid) static struct nvme_queue *get_nvmeq(struct nvme_ns *ns) { - int qid, cpu = get_cpu(); - if (cpu < ns->dev->queue_count) - qid = cpu + 1; - else - qid = (cpu % rounddown_pow_of_two(ns->dev->queue_count)) + 1; - return ns->dev->queues[qid]; + return ns->dev->queues[get_cpu() + 1]; } static void put_nvmeq(struct nvme_queue *nvmeq) @@ -1316,6 +1311,11 @@ static int __devinit nvme_setup_io_queues(struct nvme_dev *dev) dev->queue_count++; } + for (; i < num_possible_cpus(); i++) { + int target = i % rounddown_pow_of_two(dev->queue_count - 1); + dev->queues[i + 1] = dev->queues[target + 1]; + } + return 0; }