linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Javier González" <jg@lightnvm.io>
To: mb@lightnvm.io
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Javier González" <javier@cnexlabs.com>
Subject: [PATCH 06/20] lightnvm: remove sysfs configuration interface
Date: Fri, 18 Nov 2016 15:43:28 +0100	[thread overview]
Message-ID: <1479480222-18790-7-git-send-email-javier@cnexlabs.com> (raw)
In-Reply-To: <1479480222-18790-1-git-send-email-javier@cnexlabs.com>

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 <javier@cnexlabs.com>
---
 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;
-- 
2.7.4

  parent reply	other threads:[~2016-11-18 14:49 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-18 14:43 [PATCH 00/20] lightnvm: simplify media manager Javier González
2016-11-18 14:43 ` [PATCH 01/20] lightnvm: enable to send hint to erase command Javier González
2016-11-18 14:43 ` [PATCH 02/20] lightnvm: do not protect block 0 Javier González
2016-11-18 14:43 ` [PATCH 03/20] lightnvm: export set bad block table Javier González
2016-11-18 14:43 ` [PATCH 04/20] lightnvm: add ECC error codes Javier González
2016-11-18 14:43 ` [PATCH 05/20] lightnvm: rrpc: split bios of size > 256kb Javier González
2016-11-18 14:43 ` Javier González [this message]
2016-11-18 14:43 ` [PATCH 07/20] lightnvm: cleanup unused target operations Javier González
2016-11-18 14:43 ` [PATCH 08/20] lightnvm: make address conversion functions global Javier González
2016-11-18 14:43 ` [PATCH 09/20] lightnvm: remove unnecessary variables in rrpc Javier González
2016-11-18 14:43 ` [PATCH 10/20] lightnvm: use constant name instead of value Javier González
2016-11-18 14:43 ` [PATCH 11/20] lightnvm: remove gen_lun abstraction Javier González
2016-11-18 14:43 ` [PATCH 12/20] lightnvm: manage lun partitions internally in mm Javier González
2016-11-18 14:43 ` [PATCH 13/20] lightnvm: move block provisioning to targets Javier González
2016-11-18 18:20   ` kbuild test robot
2016-11-18 14:43 ` [PATCH 14/20] lightnvm: remove get_lun operation on gennvm Javier González
2016-11-18 14:43 ` [PATCH 15/20] lightnvm: remove debug lun statistics from gennvm Javier González
2016-11-18 14:43 ` [PATCH 16/20] lightnvm: eliminate nvm_block abstraction on mm Javier González
2016-11-18 18:45   ` kbuild test robot
2016-11-18 14:43 ` [PATCH 17/20] lightnvm: eliminate nvm_lun abstraction in mm Javier González
2016-11-18 14:43 ` [PATCH 18/20] lightnvm: introduce helpers for generic ops in rrpc Javier González
2016-11-18 14:43 ` [PATCH 19/20] lightnvm: introduce max_phys_sects helper function Javier González
2016-11-18 14:43 ` [PATCH 20/20] lightnvm: use target nvm on target-specific ops Javier González
2016-11-21 11:29 ` [PATCH 00/20] lightnvm: simplify media manager Matias Bjørling

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1479480222-18790-7-git-send-email-javier@cnexlabs.com \
    --to=jg@lightnvm.io \
    --cc=javier@cnexlabs.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mb@lightnvm.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).