From patchwork Fri Nov 18 14:43:28 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?UTF-8?q?Javier=20Gonz=C3=A1lez?= X-Patchwork-Id: 9436705 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 88ECD60237 for ; Fri, 18 Nov 2016 14:49:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 83D3A29912 for ; Fri, 18 Nov 2016 14:49:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 784EB29915; Fri, 18 Nov 2016 14:49:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ED17129919 for ; Fri, 18 Nov 2016 14:49:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753830AbcKROtD (ORCPT ); Fri, 18 Nov 2016 09:49:03 -0500 Received: from mail-wm0-f44.google.com ([74.125.82.44]:35928 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753241AbcKROoD (ORCPT ); Fri, 18 Nov 2016 09:44:03 -0500 Received: by mail-wm0-f44.google.com with SMTP id g23so42648736wme.1 for ; Fri, 18 Nov 2016 06:44:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lightnvm-io.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bRlGF+5sSBSq9snIa5VRJ2dhnzwEeKQJFYwL0U+9u7Q=; b=rlz2NOyKoqgeIfySb5yEzM/kWVZntsnyVOzdjxvHGqzq91KpfgpCi5YoqM3KJhr3f4 P7jZHwSJPj1/UsZ3vLRqlPW1SOgTOaEPiCg9aQPrzZXUhrZheABiQTFx3iv5Dc7SsLrn iNjjVju/lsPu9pB1H/3UAtssa2K7ZbdrQY/JNVZfVVodBWNYFbNWF3dXfw0YR5cBv1vj nnQ5PavX2+pfzrToKXPkuZ4HNvZEJL8fMmVfkANL6mEwluSEiDVu93THOaFGvO+jMeXO vd9yKxxV/7jL3dkxq0YmKbf9OvpxxEJU3O11BalnwVC0aB8jl6GSGi2jeegX/L3bMsPi TcOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bRlGF+5sSBSq9snIa5VRJ2dhnzwEeKQJFYwL0U+9u7Q=; b=bK4qBBlHM5bfBOeBj8DmQDVily/jMZk9Eu/g6UWzudbeGMqrDLtL1OHziRjEgfOHXR eoEVNxN3tTQJ5VzMSGd+kPNJcOnkMxyOySi/zq+PMrn/jKrE/pC51lEimzfY6MIiiUFc 9nnwLPorI89495hvs7egjDF3k4j745Sq2FryZaIEd4bYrwm5EDHNfNeNaMRuQpFYwHVg nG9heEZxjIIz6j2fiVg1ClvtXw6eEruFkmmtVqF9q7w+JmhNILveILaiX6pkSu8vAIsP A8nyoM6608+qlaEfE5kG4MVUeieHVwRnnG25pMilivMyMbsqb0/rYq1hBcoKH41GURcv SqTg== X-Gm-Message-State: AKaTC02ljyjksUJ5uZeCrQS1wiTrtHifwA+4lepBU1Xefd8Or/IkogRjY3ezrn0/WoigfQ== X-Received: by 10.28.174.76 with SMTP id x73mr75838wme.25.1479480241681; Fri, 18 Nov 2016 06:44:01 -0800 (PST) Received: from uHalley.cnexlabs.com (6164211-cl69.boa.fiberby.dk. [193.106.164.211]) by smtp.gmail.com with ESMTPSA id 138sm3703576wms.20.2016.11.18.06.44.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 18 Nov 2016 06:44:01 -0800 (PST) From: "=?UTF-8?q?Javier=20Gonz=C3=A1lez?=" X-Google-Original-From: =?UTF-8?q?Javier=20Gonz=C3=A1lez?= To: mb@lightnvm.io Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Javier=20Gonz=C3=A1lez?= Subject: [PATCH 06/20] lightnvm: remove sysfs configuration interface Date: Fri, 18 Nov 2016 15:43:28 +0100 Message-Id: <1479480222-18790-7-git-send-email-javier@cnexlabs.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1479480222-18790-1-git-send-email-javier@cnexlabs.com> References: <1479480222-18790-1-git-send-email-javier@cnexlabs.com> MIME-Version: 1.0 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP LightNVM used to be managed and configured through sysfs. Since the introduction of management ioctls this interface is redundant and outdated. Get rid of it. Signed-off-by: Javier González --- drivers/lightnvm/core.c | 134 ------------------------------------------------ 1 file changed, 134 deletions(-) diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c index 6527cf6..d4433d3 100644 --- a/drivers/lightnvm/core.c +++ b/drivers/lightnvm/core.c @@ -780,140 +780,6 @@ static int __nvm_configure_create(struct nvm_ioctl_create *create) return dev->mt->create_tgt(dev, create); } -#ifdef CONFIG_NVM_DEBUG -static int nvm_configure_show(const char *val) -{ - struct nvm_dev *dev; - char opcode, devname[DISK_NAME_LEN]; - int ret; - - ret = sscanf(val, "%c %32s", &opcode, devname); - if (ret != 2) { - pr_err("nvm: invalid command. Use \"opcode devicename\".\n"); - return -EINVAL; - } - - down_write(&nvm_lock); - dev = nvm_find_nvm_dev(devname); - up_write(&nvm_lock); - if (!dev) { - pr_err("nvm: device not found\n"); - return -EINVAL; - } - - if (!dev->mt) - return 0; - - dev->mt->lun_info_print(dev); - - return 0; -} - -static int nvm_configure_remove(const char *val) -{ - struct nvm_ioctl_remove remove; - struct nvm_dev *dev; - char opcode; - int ret = 0; - - ret = sscanf(val, "%c %256s", &opcode, remove.tgtname); - if (ret != 2) { - pr_err("nvm: invalid command. Use \"d targetname\".\n"); - return -EINVAL; - } - - remove.flags = 0; - - list_for_each_entry(dev, &nvm_devices, devices) { - ret = dev->mt->remove_tgt(dev, &remove); - if (!ret) - break; - } - - return ret; -} - -static int nvm_configure_create(const char *val) -{ - struct nvm_ioctl_create create; - char opcode; - int lun_begin, lun_end, ret; - - ret = sscanf(val, "%c %256s %256s %48s %u:%u", &opcode, create.dev, - create.tgtname, create.tgttype, - &lun_begin, &lun_end); - if (ret != 6) { - pr_err("nvm: invalid command. Use \"opcode device name tgttype lun_begin:lun_end\".\n"); - return -EINVAL; - } - - create.flags = 0; - create.conf.type = NVM_CONFIG_TYPE_SIMPLE; - create.conf.s.lun_begin = lun_begin; - create.conf.s.lun_end = lun_end; - - return __nvm_configure_create(&create); -} - - -/* Exposes administrative interface through /sys/module/lnvm/configure_by_str */ -static int nvm_configure_by_str_event(const char *val, - const struct kernel_param *kp) -{ - char opcode; - int ret; - - ret = sscanf(val, "%c", &opcode); - if (ret != 1) { - pr_err("nvm: string must have the format of \"cmd ...\"\n"); - return -EINVAL; - } - - switch (opcode) { - case 'a': - return nvm_configure_create(val); - case 'd': - return nvm_configure_remove(val); - case 's': - return nvm_configure_show(val); - default: - pr_err("nvm: invalid command\n"); - return -EINVAL; - } - - return 0; -} - -static int nvm_configure_get(char *buf, const struct kernel_param *kp) -{ - int sz; - struct nvm_dev *dev; - - sz = sprintf(buf, "available devices:\n"); - down_write(&nvm_lock); - list_for_each_entry(dev, &nvm_devices, devices) { - if (sz > 4095 - DISK_NAME_LEN - 2) - break; - sz += sprintf(buf + sz, " %32s\n", dev->name); - } - up_write(&nvm_lock); - - return sz; -} - -static const struct kernel_param_ops nvm_configure_by_str_event_param_ops = { - .set = nvm_configure_by_str_event, - .get = nvm_configure_get, -}; - -#undef MODULE_PARAM_PREFIX -#define MODULE_PARAM_PREFIX "lnvm." - -module_param_cb(configure_debug, &nvm_configure_by_str_event_param_ops, NULL, - 0644); - -#endif /* CONFIG_NVM_DEBUG */ - static long nvm_ioctl_info(struct file *file, void __user *arg) { struct nvm_ioctl_info *info;