Merge tag 'driver-core-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core and debugfs updates from Greg KH: "Here is the "big" driver core and debugfs changes for 5.3-rc1 It's a lot of different patches, all across the tree due to some api changes and lots of debugfs cleanups. Other than the debugfs cleanups, in this set of changes we have: - bus iteration function cleanups - scripts/get_abi.pl tool to display and parse Documentation/ABI entries in a simple way - cleanups to Documenatation/ABI/ entries to make them parse easier due to typos and other minor things - default_attrs use for some ktype users - driver model documentation file conversions to .rst - compressed firmware file loading - deferred probe fixes All of these have been in linux-next for a while, with a bunch of merge issues that Stephen has been patient with me for" * tag 'driver-core-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (102 commits) debugfs: make error message a bit more verbose orangefs: fix build warning from debugfs cleanup patch ubifs: fix build warning after debugfs cleanup patch driver: core: Allow subsystems to continue deferring probe drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel RDT arch_topology: Remove error messages on out-of-memory conditions lib: notifier-error-inject: no need to check return value of debugfs_create functions swiotlb: no need to check return value of debugfs_create functions ceph: no need to check return value of debugfs_create functions sunrpc: no need to check return value of debugfs_create functions ubifs: no need to check return value of debugfs_create functions orangefs: no need to check return value of debugfs_create functions nfsd: no need to check return value of debugfs_create functions lib: 842: no need to check return value of debugfs_create functions debugfs: provide pr_fmt() macro debugfs: log errors when something goes wrong drivers: s390/cio: Fix compilation warning about const qualifiers drivers: Add generic helper to match by of_node driver_find_device: Unify the match function with class_find_device() bus_find_device: Unify the match callback with class_find_device ...
This commit is contained in:
@@ -908,11 +908,11 @@ void cxl_update_dedicated_ivtes_psl8(struct cxl_context *ctx);
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
|
||||
int cxl_debugfs_init(void);
|
||||
void cxl_debugfs_init(void);
|
||||
void cxl_debugfs_exit(void);
|
||||
int cxl_debugfs_adapter_add(struct cxl *adapter);
|
||||
void cxl_debugfs_adapter_add(struct cxl *adapter);
|
||||
void cxl_debugfs_adapter_remove(struct cxl *adapter);
|
||||
int cxl_debugfs_afu_add(struct cxl_afu *afu);
|
||||
void cxl_debugfs_afu_add(struct cxl_afu *afu);
|
||||
void cxl_debugfs_afu_remove(struct cxl_afu *afu);
|
||||
void cxl_debugfs_add_adapter_regs_psl9(struct cxl *adapter, struct dentry *dir);
|
||||
void cxl_debugfs_add_adapter_regs_psl8(struct cxl *adapter, struct dentry *dir);
|
||||
@@ -921,27 +921,24 @@ void cxl_debugfs_add_afu_regs_psl8(struct cxl_afu *afu, struct dentry *dir);
|
||||
|
||||
#else /* CONFIG_DEBUG_FS */
|
||||
|
||||
static inline int __init cxl_debugfs_init(void)
|
||||
static inline void __init cxl_debugfs_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void cxl_debugfs_exit(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int cxl_debugfs_adapter_add(struct cxl *adapter)
|
||||
static inline void cxl_debugfs_adapter_add(struct cxl *adapter)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void cxl_debugfs_adapter_remove(struct cxl *adapter)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int cxl_debugfs_afu_add(struct cxl_afu *afu)
|
||||
static inline void cxl_debugfs_afu_add(struct cxl_afu *afu)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void cxl_debugfs_afu_remove(struct cxl_afu *afu)
|
||||
|
@@ -26,11 +26,11 @@ static int debugfs_io_u64_set(void *data, u64 val)
|
||||
DEFINE_DEBUGFS_ATTRIBUTE(fops_io_x64, debugfs_io_u64_get, debugfs_io_u64_set,
|
||||
"0x%016llx\n");
|
||||
|
||||
static struct dentry *debugfs_create_io_x64(const char *name, umode_t mode,
|
||||
struct dentry *parent, u64 __iomem *value)
|
||||
static void debugfs_create_io_x64(const char *name, umode_t mode,
|
||||
struct dentry *parent, u64 __iomem *value)
|
||||
{
|
||||
return debugfs_create_file_unsafe(name, mode, parent,
|
||||
(void __force *)value, &fops_io_x64);
|
||||
debugfs_create_file_unsafe(name, mode, parent, (void __force *)value,
|
||||
&fops_io_x64);
|
||||
}
|
||||
|
||||
void cxl_debugfs_add_adapter_regs_psl9(struct cxl *adapter, struct dentry *dir)
|
||||
@@ -54,25 +54,22 @@ void cxl_debugfs_add_adapter_regs_psl8(struct cxl *adapter, struct dentry *dir)
|
||||
debugfs_create_io_x64("trace", S_IRUSR | S_IWUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_TRACE));
|
||||
}
|
||||
|
||||
int cxl_debugfs_adapter_add(struct cxl *adapter)
|
||||
void cxl_debugfs_adapter_add(struct cxl *adapter)
|
||||
{
|
||||
struct dentry *dir;
|
||||
char buf[32];
|
||||
|
||||
if (!cxl_debugfs)
|
||||
return -ENODEV;
|
||||
return;
|
||||
|
||||
snprintf(buf, 32, "card%i", adapter->adapter_num);
|
||||
dir = debugfs_create_dir(buf, cxl_debugfs);
|
||||
if (IS_ERR(dir))
|
||||
return PTR_ERR(dir);
|
||||
adapter->debugfs = dir;
|
||||
|
||||
debugfs_create_io_x64("err_ivte", S_IRUSR, dir, _cxl_p1_addr(adapter, CXL_PSL_ErrIVTE));
|
||||
|
||||
if (adapter->native->sl_ops->debugfs_add_adapter_regs)
|
||||
adapter->native->sl_ops->debugfs_add_adapter_regs(adapter, dir);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void cxl_debugfs_adapter_remove(struct cxl *adapter)
|
||||
@@ -96,18 +93,16 @@ void cxl_debugfs_add_afu_regs_psl8(struct cxl_afu *afu, struct dentry *dir)
|
||||
debugfs_create_io_x64("trace", S_IRUSR | S_IWUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_SLICE_TRACE));
|
||||
}
|
||||
|
||||
int cxl_debugfs_afu_add(struct cxl_afu *afu)
|
||||
void cxl_debugfs_afu_add(struct cxl_afu *afu)
|
||||
{
|
||||
struct dentry *dir;
|
||||
char buf[32];
|
||||
|
||||
if (!afu->adapter->debugfs)
|
||||
return -ENODEV;
|
||||
return;
|
||||
|
||||
snprintf(buf, 32, "psl%i.%i", afu->adapter->adapter_num, afu->slice);
|
||||
dir = debugfs_create_dir(buf, afu->adapter->debugfs);
|
||||
if (IS_ERR(dir))
|
||||
return PTR_ERR(dir);
|
||||
afu->debugfs = dir;
|
||||
|
||||
debugfs_create_io_x64("sr", S_IRUSR, dir, _cxl_p1n_addr(afu, CXL_PSL_SR_An));
|
||||
@@ -118,8 +113,6 @@ int cxl_debugfs_afu_add(struct cxl_afu *afu)
|
||||
|
||||
if (afu->adapter->native->sl_ops->debugfs_add_afu_regs)
|
||||
afu->adapter->native->sl_ops->debugfs_add_afu_regs(afu, dir);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void cxl_debugfs_afu_remove(struct cxl_afu *afu)
|
||||
@@ -127,19 +120,12 @@ void cxl_debugfs_afu_remove(struct cxl_afu *afu)
|
||||
debugfs_remove_recursive(afu->debugfs);
|
||||
}
|
||||
|
||||
int __init cxl_debugfs_init(void)
|
||||
void __init cxl_debugfs_init(void)
|
||||
{
|
||||
struct dentry *ent;
|
||||
|
||||
if (!cpu_has_feature(CPU_FTR_HVMODE))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
ent = debugfs_create_dir("cxl", NULL);
|
||||
if (IS_ERR(ent))
|
||||
return PTR_ERR(ent);
|
||||
cxl_debugfs = ent;
|
||||
|
||||
return 0;
|
||||
cxl_debugfs = debugfs_create_dir("cxl", NULL);
|
||||
}
|
||||
|
||||
void cxl_debugfs_exit(void)
|
||||
|
@@ -1369,10 +1369,6 @@ static int __init genwqe_init_module(void)
|
||||
class_genwqe->devnode = genwqe_devnode;
|
||||
|
||||
debugfs_genwqe = debugfs_create_dir(GENWQE_DEVNAME, NULL);
|
||||
if (!debugfs_genwqe) {
|
||||
rc = -ENOMEM;
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
rc = pci_register_driver(&genwqe_driver);
|
||||
if (rc != 0) {
|
||||
@@ -1384,7 +1380,6 @@ static int __init genwqe_init_module(void)
|
||||
|
||||
err_out0:
|
||||
debugfs_remove(debugfs_genwqe);
|
||||
err_out:
|
||||
class_destroy(class_genwqe);
|
||||
return rc;
|
||||
}
|
||||
|
@@ -437,7 +437,7 @@ int genwqe_device_create(struct genwqe_dev *cd);
|
||||
int genwqe_device_remove(struct genwqe_dev *cd);
|
||||
|
||||
/* debugfs */
|
||||
int genwqe_init_debugfs(struct genwqe_dev *cd);
|
||||
void genwqe_init_debugfs(struct genwqe_dev *cd);
|
||||
void genqwe_exit_debugfs(struct genwqe_dev *cd);
|
||||
|
||||
int genwqe_read_softreset(struct genwqe_dev *cd);
|
||||
|
@@ -316,11 +316,9 @@ static int info_show(struct seq_file *s, void *unused)
|
||||
|
||||
DEFINE_SHOW_ATTRIBUTE(info);
|
||||
|
||||
int genwqe_init_debugfs(struct genwqe_dev *cd)
|
||||
void genwqe_init_debugfs(struct genwqe_dev *cd)
|
||||
{
|
||||
struct dentry *root;
|
||||
struct dentry *file;
|
||||
int ret;
|
||||
char card_name[64];
|
||||
char name[64];
|
||||
unsigned int i;
|
||||
@@ -328,153 +326,50 @@ int genwqe_init_debugfs(struct genwqe_dev *cd)
|
||||
sprintf(card_name, "%s%d_card", GENWQE_DEVNAME, cd->card_idx);
|
||||
|
||||
root = debugfs_create_dir(card_name, cd->debugfs_genwqe);
|
||||
if (!root) {
|
||||
ret = -ENOMEM;
|
||||
goto err0;
|
||||
}
|
||||
|
||||
/* non privileged interfaces are done here */
|
||||
file = debugfs_create_file("ddcb_info", S_IRUGO, root, cd,
|
||||
&ddcb_info_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("info", S_IRUGO, root, cd,
|
||||
&info_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_x64("err_inject", 0666, root, &cd->err_inject);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_u32("ddcb_software_timeout", 0666, root,
|
||||
&cd->ddcb_software_timeout);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_u32("kill_timeout", 0666, root,
|
||||
&cd->kill_timeout);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
debugfs_create_file("ddcb_info", S_IRUGO, root, cd, &ddcb_info_fops);
|
||||
debugfs_create_file("info", S_IRUGO, root, cd, &info_fops);
|
||||
debugfs_create_x64("err_inject", 0666, root, &cd->err_inject);
|
||||
debugfs_create_u32("ddcb_software_timeout", 0666, root,
|
||||
&cd->ddcb_software_timeout);
|
||||
debugfs_create_u32("kill_timeout", 0666, root, &cd->kill_timeout);
|
||||
|
||||
/* privileged interfaces follow here */
|
||||
if (!genwqe_is_privileged(cd)) {
|
||||
cd->debugfs_root = root;
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("curr_regs", S_IRUGO, root, cd,
|
||||
&curr_regs_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("curr_dbg_uid0", S_IRUGO, root, cd,
|
||||
&curr_dbg_uid0_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("curr_dbg_uid1", S_IRUGO, root, cd,
|
||||
&curr_dbg_uid1_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("curr_dbg_uid2", S_IRUGO, root, cd,
|
||||
&curr_dbg_uid2_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("prev_regs", S_IRUGO, root, cd,
|
||||
&prev_regs_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("prev_dbg_uid0", S_IRUGO, root, cd,
|
||||
&prev_dbg_uid0_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("prev_dbg_uid1", S_IRUGO, root, cd,
|
||||
&prev_dbg_uid1_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("prev_dbg_uid2", S_IRUGO, root, cd,
|
||||
&prev_dbg_uid2_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
debugfs_create_file("curr_regs", S_IRUGO, root, cd, &curr_regs_fops);
|
||||
debugfs_create_file("curr_dbg_uid0", S_IRUGO, root, cd,
|
||||
&curr_dbg_uid0_fops);
|
||||
debugfs_create_file("curr_dbg_uid1", S_IRUGO, root, cd,
|
||||
&curr_dbg_uid1_fops);
|
||||
debugfs_create_file("curr_dbg_uid2", S_IRUGO, root, cd,
|
||||
&curr_dbg_uid2_fops);
|
||||
debugfs_create_file("prev_regs", S_IRUGO, root, cd, &prev_regs_fops);
|
||||
debugfs_create_file("prev_dbg_uid0", S_IRUGO, root, cd,
|
||||
&prev_dbg_uid0_fops);
|
||||
debugfs_create_file("prev_dbg_uid1", S_IRUGO, root, cd,
|
||||
&prev_dbg_uid1_fops);
|
||||
debugfs_create_file("prev_dbg_uid2", S_IRUGO, root, cd,
|
||||
&prev_dbg_uid2_fops);
|
||||
|
||||
for (i = 0; i < GENWQE_MAX_VFS; i++) {
|
||||
sprintf(name, "vf%u_jobtimeout_msec", i);
|
||||
|
||||
file = debugfs_create_u32(name, 0666, root,
|
||||
&cd->vf_jobtimeout_msec[i]);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
debugfs_create_u32(name, 0666, root,
|
||||
&cd->vf_jobtimeout_msec[i]);
|
||||
}
|
||||
|
||||
file = debugfs_create_file("jobtimer", S_IRUGO, root, cd,
|
||||
&jtimer_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_file("queue_working_time", S_IRUGO, root, cd,
|
||||
&queue_working_time_fops);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_u32("skip_recovery", 0666, root,
|
||||
&cd->skip_recovery);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
file = debugfs_create_u32("use_platform_recovery", 0666, root,
|
||||
&cd->use_platform_recovery);
|
||||
if (!file) {
|
||||
ret = -ENOMEM;
|
||||
goto err1;
|
||||
}
|
||||
debugfs_create_file("jobtimer", S_IRUGO, root, cd, &jtimer_fops);
|
||||
debugfs_create_file("queue_working_time", S_IRUGO, root, cd,
|
||||
&queue_working_time_fops);
|
||||
debugfs_create_u32("skip_recovery", 0666, root, &cd->skip_recovery);
|
||||
debugfs_create_u32("use_platform_recovery", 0666, root,
|
||||
&cd->use_platform_recovery);
|
||||
|
||||
cd->debugfs_root = root;
|
||||
return 0;
|
||||
err1:
|
||||
debugfs_remove_recursive(root);
|
||||
err0:
|
||||
return ret;
|
||||
}
|
||||
|
||||
void genqwe_exit_debugfs(struct genwqe_dev *cd)
|
||||
|
@@ -1301,14 +1301,10 @@ int genwqe_device_create(struct genwqe_dev *cd)
|
||||
goto err_cdev;
|
||||
}
|
||||
|
||||
rc = genwqe_init_debugfs(cd);
|
||||
if (rc != 0)
|
||||
goto err_debugfs;
|
||||
genwqe_init_debugfs(cd);
|
||||
|
||||
return 0;
|
||||
|
||||
err_debugfs:
|
||||
device_destroy(cd->class_genwqe, cd->devnum_genwqe);
|
||||
err_cdev:
|
||||
cdev_del(&cd->cdev_genwqe);
|
||||
err_add:
|
||||
|
@@ -391,7 +391,7 @@ static int __init lkdtm_module_init(void)
|
||||
{
|
||||
struct crashpoint *crashpoint = NULL;
|
||||
const struct crashtype *crashtype = NULL;
|
||||
int ret = -EINVAL;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
/* Neither or both of these need to be set */
|
||||
@@ -434,22 +434,13 @@ static int __init lkdtm_module_init(void)
|
||||
|
||||
/* Register debugfs interface */
|
||||
lkdtm_debugfs_root = debugfs_create_dir("provoke-crash", NULL);
|
||||
if (!lkdtm_debugfs_root) {
|
||||
pr_err("creating root dir failed\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* Install debugfs trigger files. */
|
||||
for (i = 0; i < ARRAY_SIZE(crashpoints); i++) {
|
||||
struct crashpoint *cur = &crashpoints[i];
|
||||
struct dentry *de;
|
||||
|
||||
de = debugfs_create_file(cur->name, 0644, lkdtm_debugfs_root,
|
||||
cur, &cur->fops);
|
||||
if (de == NULL) {
|
||||
pr_err("could not create crashpoint %s\n", cur->name);
|
||||
goto out_err;
|
||||
}
|
||||
debugfs_create_file(cur->name, 0644, lkdtm_debugfs_root, cur,
|
||||
&cur->fops);
|
||||
}
|
||||
|
||||
/* Install crashpoint if one was selected. */
|
||||
|
@@ -154,46 +154,21 @@ void mei_dbgfs_deregister(struct mei_device *dev)
|
||||
*
|
||||
* @dev: the mei device structure
|
||||
* @name: the mei device name
|
||||
*
|
||||
* Return: 0 on success, <0 on failure.
|
||||
*/
|
||||
int mei_dbgfs_register(struct mei_device *dev, const char *name)
|
||||
void mei_dbgfs_register(struct mei_device *dev, const char *name)
|
||||
{
|
||||
struct dentry *dir, *f;
|
||||
struct dentry *dir;
|
||||
|
||||
dir = debugfs_create_dir(name, NULL);
|
||||
if (!dir)
|
||||
return -ENOMEM;
|
||||
|
||||
dev->dbgfs_dir = dir;
|
||||
|
||||
f = debugfs_create_file("meclients", S_IRUSR, dir,
|
||||
dev, &mei_dbgfs_meclients_fops);
|
||||
if (!f) {
|
||||
dev_err(dev->dev, "meclients: registration failed\n");
|
||||
goto err;
|
||||
}
|
||||
f = debugfs_create_file("active", S_IRUSR, dir,
|
||||
dev, &mei_dbgfs_active_fops);
|
||||
if (!f) {
|
||||
dev_err(dev->dev, "active: registration failed\n");
|
||||
goto err;
|
||||
}
|
||||
f = debugfs_create_file("devstate", S_IRUSR, dir,
|
||||
dev, &mei_dbgfs_devstate_fops);
|
||||
if (!f) {
|
||||
dev_err(dev->dev, "devstate: registration failed\n");
|
||||
goto err;
|
||||
}
|
||||
f = debugfs_create_file("allow_fixed_address", S_IRUSR | S_IWUSR, dir,
|
||||
&dev->allow_fixed_address,
|
||||
&mei_dbgfs_allow_fa_fops);
|
||||
if (!f) {
|
||||
dev_err(dev->dev, "allow_fixed_address: registration failed\n");
|
||||
goto err;
|
||||
}
|
||||
return 0;
|
||||
err:
|
||||
mei_dbgfs_deregister(dev);
|
||||
return -ENODEV;
|
||||
debugfs_create_file("meclients", S_IRUSR, dir, dev,
|
||||
&mei_dbgfs_meclients_fops);
|
||||
debugfs_create_file("active", S_IRUSR, dir, dev,
|
||||
&mei_dbgfs_active_fops);
|
||||
debugfs_create_file("devstate", S_IRUSR, dir, dev,
|
||||
&mei_dbgfs_devstate_fops);
|
||||
debugfs_create_file("allow_fixed_address", S_IRUSR | S_IWUSR, dir,
|
||||
&dev->allow_fixed_address,
|
||||
&mei_dbgfs_allow_fa_fops);
|
||||
}
|
||||
|
@@ -984,16 +984,10 @@ int mei_register(struct mei_device *dev, struct device *parent)
|
||||
goto err_dev_create;
|
||||
}
|
||||
|
||||
ret = mei_dbgfs_register(dev, dev_name(clsdev));
|
||||
if (ret) {
|
||||
dev_err(clsdev, "cannot register debugfs ret = %d\n", ret);
|
||||
goto err_dev_dbgfs;
|
||||
}
|
||||
mei_dbgfs_register(dev, dev_name(clsdev));
|
||||
|
||||
return 0;
|
||||
|
||||
err_dev_dbgfs:
|
||||
device_destroy(mei_class, devno);
|
||||
err_dev_create:
|
||||
cdev_del(&dev->cdev);
|
||||
err_dev_add:
|
||||
|
@@ -718,13 +718,10 @@ bool mei_hbuf_acquire(struct mei_device *dev);
|
||||
bool mei_write_is_idle(struct mei_device *dev);
|
||||
|
||||
#if IS_ENABLED(CONFIG_DEBUG_FS)
|
||||
int mei_dbgfs_register(struct mei_device *dev, const char *name);
|
||||
void mei_dbgfs_register(struct mei_device *dev, const char *name);
|
||||
void mei_dbgfs_deregister(struct mei_device *dev);
|
||||
#else
|
||||
static inline int mei_dbgfs_register(struct mei_device *dev, const char *name)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void mei_dbgfs_register(struct mei_device *dev, const char *name) {}
|
||||
static inline void mei_dbgfs_deregister(struct mei_device *dev) {}
|
||||
#endif /* CONFIG_DEBUG_FS */
|
||||
|
||||
|
@@ -51,25 +51,13 @@ DEFINE_SHOW_ATTRIBUTE(mic_intr);
|
||||
*/
|
||||
void __init mic_create_card_debug_dir(struct mic_driver *mdrv)
|
||||
{
|
||||
struct dentry *d;
|
||||
|
||||
if (!mic_dbg)
|
||||
return;
|
||||
|
||||
mdrv->dbg_dir = debugfs_create_dir(mdrv->name, mic_dbg);
|
||||
if (!mdrv->dbg_dir) {
|
||||
dev_err(mdrv->dev, "Cant create dbg_dir %s\n", mdrv->name);
|
||||
return;
|
||||
}
|
||||
|
||||
d = debugfs_create_file("intr_test", 0444, mdrv->dbg_dir,
|
||||
mdrv, &mic_intr_fops);
|
||||
|
||||
if (!d) {
|
||||
dev_err(mdrv->dev,
|
||||
"Cant create dbg intr_test %s\n", mdrv->name);
|
||||
return;
|
||||
}
|
||||
debugfs_create_file("intr_test", 0444, mdrv->dbg_dir, mdrv,
|
||||
&mic_intr_fops);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -89,8 +77,6 @@ void mic_delete_card_debug_dir(struct mic_driver *mdrv)
|
||||
void __init mic_init_card_debugfs(void)
|
||||
{
|
||||
mic_dbg = debugfs_create_dir(KBUILD_MODNAME, NULL);
|
||||
if (!mic_dbg)
|
||||
pr_err("can't create debugfs dir\n");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -93,8 +93,6 @@ void cosm_create_debug_dir(struct cosm_device *cdev)
|
||||
|
||||
scnprintf(name, sizeof(name), "mic%d", cdev->index);
|
||||
cdev->dbg_dir = debugfs_create_dir(name, cosm_dbg);
|
||||
if (!cdev->dbg_dir)
|
||||
return;
|
||||
|
||||
debugfs_create_file("log_buf", 0444, cdev->dbg_dir, cdev,
|
||||
&log_buf_fops);
|
||||
@@ -113,8 +111,6 @@ void cosm_delete_debug_dir(struct cosm_device *cdev)
|
||||
void cosm_init_debugfs(void)
|
||||
{
|
||||
cosm_dbg = debugfs_create_dir(KBUILD_MODNAME, NULL);
|
||||
if (!cosm_dbg)
|
||||
pr_err("can't create debugfs dir\n");
|
||||
}
|
||||
|
||||
void cosm_exit_debugfs(void)
|
||||
|
@@ -113,8 +113,6 @@ void mic_create_debug_dir(struct mic_device *mdev)
|
||||
|
||||
scnprintf(name, sizeof(name), "mic%d", mdev->id);
|
||||
mdev->dbg_dir = debugfs_create_dir(name, mic_dbg);
|
||||
if (!mdev->dbg_dir)
|
||||
return;
|
||||
|
||||
debugfs_create_file("smpt", 0444, mdev->dbg_dir, mdev,
|
||||
&mic_smpt_fops);
|
||||
@@ -143,8 +141,6 @@ void mic_delete_debug_dir(struct mic_device *mdev)
|
||||
void __init mic_init_debugfs(void)
|
||||
{
|
||||
mic_dbg = debugfs_create_dir(KBUILD_MODNAME, NULL);
|
||||
if (!mic_dbg)
|
||||
pr_err("can't create debugfs dir\n");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -103,11 +103,6 @@ DEFINE_SHOW_ATTRIBUTE(scif_rma);
|
||||
void __init scif_init_debugfs(void)
|
||||
{
|
||||
scif_dbg = debugfs_create_dir(KBUILD_MODNAME, NULL);
|
||||
if (!scif_dbg) {
|
||||
dev_err(scif_info.mdev.this_device,
|
||||
"can't create debugfs dir scif\n");
|
||||
return;
|
||||
}
|
||||
|
||||
debugfs_create_file("scif_dev", 0444, scif_dbg, NULL, &scif_dev_fops);
|
||||
debugfs_create_file("scif_rma", 0444, scif_dbg, NULL, &scif_rma_fops);
|
||||
|
@@ -174,10 +174,6 @@ void vop_init_debugfs(struct vop_info *vi)
|
||||
|
||||
snprintf(name, sizeof(name), "%s%d", KBUILD_MODNAME, vi->vpdev->dnode);
|
||||
vi->dbg = debugfs_create_dir(name, NULL);
|
||||
if (!vi->dbg) {
|
||||
pr_err("can't create debugfs dir vop\n");
|
||||
return;
|
||||
}
|
||||
debugfs_create_file("dp", 0444, vi->dbg, vi, &vop_dp_fops);
|
||||
debugfs_create_file("vdev_info", 0444, vi->dbg, vi, &vop_vdev_info_fops);
|
||||
}
|
||||
|
@@ -748,10 +748,6 @@ static int kim_probe(struct platform_device *pdev)
|
||||
pr_info("sysfs entries created\n");
|
||||
|
||||
kim_debugfs_dir = debugfs_create_dir("ti-st", NULL);
|
||||
if (!kim_debugfs_dir) {
|
||||
pr_err(" debugfs entries creation failed ");
|
||||
return 0;
|
||||
}
|
||||
|
||||
debugfs_create_file("version", S_IRUGO, kim_debugfs_dir,
|
||||
kim_gdata, &version_fops);
|
||||
|
@@ -1699,19 +1699,10 @@ static int vmballoon_debug_show(struct seq_file *f, void *offset)
|
||||
|
||||
DEFINE_SHOW_ATTRIBUTE(vmballoon_debug);
|
||||
|
||||
static int __init vmballoon_debugfs_init(struct vmballoon *b)
|
||||
static void __init vmballoon_debugfs_init(struct vmballoon *b)
|
||||
{
|
||||
int error;
|
||||
|
||||
b->dbg_entry = debugfs_create_file("vmmemctl", S_IRUGO, NULL, b,
|
||||
&vmballoon_debug_fops);
|
||||
if (IS_ERR(b->dbg_entry)) {
|
||||
error = PTR_ERR(b->dbg_entry);
|
||||
pr_err("failed to create debugfs entry, error: %d\n", error);
|
||||
return error;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __exit vmballoon_debugfs_exit(struct vmballoon *b)
|
||||
@@ -1724,9 +1715,8 @@ static void __exit vmballoon_debugfs_exit(struct vmballoon *b)
|
||||
|
||||
#else
|
||||
|
||||
static inline int vmballoon_debugfs_init(struct vmballoon *b)
|
||||
static inline void vmballoon_debugfs_init(struct vmballoon *b)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void vmballoon_debugfs_exit(struct vmballoon *b)
|
||||
@@ -1948,10 +1938,6 @@ static int __init vmballoon_init(void)
|
||||
if (error)
|
||||
goto fail;
|
||||
|
||||
error = vmballoon_debugfs_init(&balloon);
|
||||
if (error)
|
||||
goto fail;
|
||||
|
||||
/*
|
||||
* Initialization of compaction must be done after the call to
|
||||
* balloon_devinfo_init() .
|
||||
@@ -1971,6 +1957,8 @@ static int __init vmballoon_init(void)
|
||||
|
||||
queue_delayed_work(system_freezable_wq, &balloon.dwork, 0);
|
||||
|
||||
vmballoon_debugfs_init(&balloon);
|
||||
|
||||
return 0;
|
||||
fail:
|
||||
vmballoon_unregister_shrinker(&balloon);
|
||||
|
Reference in New Issue
Block a user