From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933209AbcIUJ50 (ORCPT ); Wed, 21 Sep 2016 05:57:26 -0400 Received: from mail.sigma-star.at ([95.130.255.111]:45996 "EHLO mail.sigma-star.at" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932865AbcIUJ5W (ORCPT ); Wed, 21 Sep 2016 05:57:22 -0400 From: Daniel Walter To: linux-mtd@lists.infradead.org Cc: linux-kernel@vger.kernel.org, computersforpeace@gmail.com, dwmw2@infradead.org, boris.brezillon@free-electrons.com, Richard Weinberger Subject: [PATCH v2 43/46] mtd: nandsim: Wire up NANDSIM_IOC_NEW_INSTANCE Date: Wed, 21 Sep 2016 11:57:17 +0200 Message-Id: <7c19d07912a8c93d2ea7fd9c7e3b08d704241b3c.1474450296.git.dwalter@sigma-star.at> X-Mailer: git-send-email 2.8.3 In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Richard Weinberger Since we have now all what we need we can arm NANDSIM_IOC_NEW_INSTANCE. Signed-off-by: Richard Weinberger --- drivers/mtd/nand/nandsim.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c index d0cc24d..bb30763 100644 --- a/drivers/mtd/nand/nandsim.c +++ b/drivers/mtd/nand/nandsim.c @@ -2900,10 +2900,35 @@ out: static long ns_ctrl_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { - if (!capable(CAP_SYS_RESOURCE)) - return -EPERM; + int ret; + void __user *argp = (void __user *)arg; + + if (!capable(CAP_SYS_RESOURCE)) { + ret = -EPERM; + goto out; + } + + switch (cmd) { + case NANDSIM_IOC_NEW_INSTANCE: + { + struct ns_new_instance_req req; + + ret = copy_from_user(&req, argp, sizeof(struct ns_new_instance_req)); + if (ret) { + ret = -EFAULT; + goto out; + } - return -ENOTTY; + ret = ns_ctrl_new_instance(&req, argp + sizeof(req)); + break; + } + + default: + ret = -ENOTTY; + } + +out: + return ret; } #ifdef CONFIG_COMPAT -- 2.8.3