From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756644AbcIUJ4P (ORCPT ); Wed, 21 Sep 2016 05:56:15 -0400 Received: from mail.sigma-star.at ([95.130.255.111]:45997 "EHLO mail.sigma-star.at" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756197AbcIUJ4J (ORCPT ); Wed, 21 Sep 2016 05:56:09 -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 38/46] mtd: nandsim: Expose partition creation logic to user space Date: Wed, 21 Sep 2016 11:56:05 +0200 Message-Id: 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 Signed-off-by: Richard Weinberger --- drivers/mtd/nand/nandsim.c | 12 +++++++++++- include/linux/mtd/nandsim.h | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c index 615dde3..6b7570b 100644 --- a/drivers/mtd/nand/nandsim.c +++ b/drivers/mtd/nand/nandsim.c @@ -2585,6 +2585,16 @@ static int ns_ctrl_new_instance(struct ns_new_instance_req *req) nsparam->file_fd = req->file_fd; nsparam->no_oob = !!req->no_oob; + if (req->parts_num > NANDSIM_MAX_PARTS || req->parts_num < 0) { + kfree(nsparam); + return -EINVAL; + } + + if (req->parts_num > 0) { + nsparam->parts_num = req->parts_num; + memcpy(nsparam->parts, req->parts, sizeof(nsparam->parts)); + } + switch (req->backend) { case NANDSIM_BACKEND_RAM: nsparam->bops = &ns_ram_bops; @@ -2979,7 +2989,7 @@ static int __init ns_init_default(void) nsparam->input_cycle = input_cycle; nsparam->bus_width = bus_width; nsparam->do_delays = do_delays; - nsparam->parts = parts; + memcpy(nsparam->parts, parts, sizeof(nsparam->parts)); nsparam->parts_num = parts_num; nsparam->badblocks = badblocks; nsparam->weakblocks = weakblocks; diff --git a/include/linux/mtd/nandsim.h b/include/linux/mtd/nandsim.h index 61ff5dd..07d32a9 100644 --- a/include/linux/mtd/nandsim.h +++ b/include/linux/mtd/nandsim.h @@ -12,7 +12,7 @@ struct nandsim_params { unsigned int input_cycle; unsigned int bus_width; unsigned int do_delays; - unsigned int *parts; + unsigned int parts[NANDSIM_MAX_PARTS]; unsigned int parts_num; char *badblocks; char *weakblocks; -- 2.8.3