Message ID | 1308825629-27375-4-git-send-email-adrian.hunter@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Adrian.. I also found this problem.. So i confused the same mmcdq name. Thanks for fixed the mmcqd name. Regards, Jaehoon Chung Adrian Hunter wrote: > For example, an eMMC with 2 boot partitions will have 3 threads. > The names change from: > > 40 ? 00:00:00 mmcqd/0 > 41 ? 00:00:00 mmcqd/0 > 42 ? 00:00:00 mmcqd/0 > > to: > > 40 ? 00:00:00 mmcqd/0 > 41 ? 00:00:00 mmcqd/0boot0 > 42 ? 00:00:00 mmcqd/0boot1 > > Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> > Cc: Andrei Warkentin <andreiw@motorola.com> > --- > drivers/mmc/card/block.c | 2 +- > drivers/mmc/card/queue.c | 8 +++++--- > drivers/mmc/card/queue.h | 3 ++- > 3 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c > index d36b7ea..bee2106 100644 > --- a/drivers/mmc/card/block.c > +++ b/drivers/mmc/card/block.c > @@ -1167,7 +1167,7 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, > INIT_LIST_HEAD(&md->part); > md->usage = 1; > > - ret = mmc_init_queue(&md->queue, card, &md->lock); > + ret = mmc_init_queue(&md->queue, card, &md->lock, subname); > if (ret) > goto err_putdisk; > > diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c > index c07322c..3e2db1c 100644 > --- a/drivers/mmc/card/queue.c > +++ b/drivers/mmc/card/queue.c > @@ -106,10 +106,12 @@ static void mmc_request(struct request_queue *q) > * @mq: mmc queue > * @card: mmc card to attach this queue > * @lock: queue lock > + * @subname: partition subname > * > * Initialise a MMC card request queue. > */ > -int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock) > +int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, > + spinlock_t *lock, const char *subname) > { > struct mmc_host *host = card->host; > u64 limit = BLK_BOUNCE_HIGH; > @@ -209,8 +211,8 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock > > sema_init(&mq->thread_sem, 1); > > - mq->thread = kthread_run(mmc_queue_thread, mq, "mmcqd/%d", > - host->index); > + mq->thread = kthread_run(mmc_queue_thread, mq, "mmcqd/%d%s", > + host->index, subname ? subname : ""); > > if (IS_ERR(mq->thread)) { > ret = PTR_ERR(mq->thread); > diff --git a/drivers/mmc/card/queue.h b/drivers/mmc/card/queue.h > index 64e66e0..6223ef8 100644 > --- a/drivers/mmc/card/queue.h > +++ b/drivers/mmc/card/queue.h > @@ -19,7 +19,8 @@ struct mmc_queue { > unsigned int bounce_sg_len; > }; > > -extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); > +extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *, > + const char *); > extern void mmc_cleanup_queue(struct mmc_queue *); > extern void mmc_queue_suspend(struct mmc_queue *); > extern void mmc_queue_resume(struct mmc_queue *); -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index d36b7ea..bee2106 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -1167,7 +1167,7 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, INIT_LIST_HEAD(&md->part); md->usage = 1; - ret = mmc_init_queue(&md->queue, card, &md->lock); + ret = mmc_init_queue(&md->queue, card, &md->lock, subname); if (ret) goto err_putdisk; diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c index c07322c..3e2db1c 100644 --- a/drivers/mmc/card/queue.c +++ b/drivers/mmc/card/queue.c @@ -106,10 +106,12 @@ static void mmc_request(struct request_queue *q) * @mq: mmc queue * @card: mmc card to attach this queue * @lock: queue lock + * @subname: partition subname * * Initialise a MMC card request queue. */ -int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock) +int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, + spinlock_t *lock, const char *subname) { struct mmc_host *host = card->host; u64 limit = BLK_BOUNCE_HIGH; @@ -209,8 +211,8 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock sema_init(&mq->thread_sem, 1); - mq->thread = kthread_run(mmc_queue_thread, mq, "mmcqd/%d", - host->index); + mq->thread = kthread_run(mmc_queue_thread, mq, "mmcqd/%d%s", + host->index, subname ? subname : ""); if (IS_ERR(mq->thread)) { ret = PTR_ERR(mq->thread); diff --git a/drivers/mmc/card/queue.h b/drivers/mmc/card/queue.h index 64e66e0..6223ef8 100644 --- a/drivers/mmc/card/queue.h +++ b/drivers/mmc/card/queue.h @@ -19,7 +19,8 @@ struct mmc_queue { unsigned int bounce_sg_len; }; -extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); +extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *, + const char *); extern void mmc_cleanup_queue(struct mmc_queue *); extern void mmc_queue_suspend(struct mmc_queue *); extern void mmc_queue_resume(struct mmc_queue *);
For example, an eMMC with 2 boot partitions will have 3 threads. The names change from: 40 ? 00:00:00 mmcqd/0 41 ? 00:00:00 mmcqd/0 42 ? 00:00:00 mmcqd/0 to: 40 ? 00:00:00 mmcqd/0 41 ? 00:00:00 mmcqd/0boot0 42 ? 00:00:00 mmcqd/0boot1 Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Andrei Warkentin <andreiw@motorola.com> --- drivers/mmc/card/block.c | 2 +- drivers/mmc/card/queue.c | 8 +++++--- drivers/mmc/card/queue.h | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-)