From 0562b8112a16d29b3034aefa2bcbe4a7f6714558 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Thu, 8 Nov 2007 08:00:24 +0100 Subject: [PATCH] --- yaml --- r: 73347 b: refs/heads/master c: fffe487d59ba4017c7c62b06667ca4a226cee651 h: refs/heads/master i: 73345: fe189c2299ec811e2c1e7f4a16482defced52b57 73343: 0e75578b3b44ddffd06621ff373cafc93821660b v: v3 --- [refs] | 2 +- trunk/drivers/block/pktcdvd.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 7576db7d0608..404c7835c273 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8ec680e4c3ec818efd1652f15199ed1c216ab550 +refs/heads/master: fffe487d59ba4017c7c62b06667ca4a226cee651 diff --git a/trunk/drivers/block/pktcdvd.c b/trunk/drivers/block/pktcdvd.c index a8130a4ad6d4..a5ee21319d37 100644 --- a/trunk/drivers/block/pktcdvd.c +++ b/trunk/drivers/block/pktcdvd.c @@ -358,10 +358,19 @@ static ssize_t class_pktcdvd_store_add(struct class *c, const char *buf, size_t count) { unsigned int major, minor; + if (sscanf(buf, "%u:%u", &major, &minor) == 2) { + /* pkt_setup_dev() expects caller to hold reference to self */ + if (!try_module_get(THIS_MODULE)) + return -ENODEV; + pkt_setup_dev(MKDEV(major, minor), NULL); + + module_put(THIS_MODULE); + return count; } + return -EINVAL; }