usbmon: Add class for binary interface
Add a class which allows for an easier integration with udev. This code was originally written by Paolo Abeni, and arrived to my tree as a part of big patch to add binary API on December 18. As I understand, Paolo always meant the class to be a part of the whole thing. This is his udev rule to go along with the patch: KERNEL=="usbmon[0-9]*", NAME="usbmon%n", MODE="0440",OWNER="root",GROUP="bin" Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
49cdee0ed0
commit
ce7cd137fc
@@ -655,20 +655,24 @@ static const struct file_operations mon_fops_text_u = {
|
||||
.release = mon_text_release,
|
||||
};
|
||||
|
||||
int mon_text_add(struct mon_bus *mbus, int busnum)
|
||||
int mon_text_add(struct mon_bus *mbus, const struct usb_bus *ubus)
|
||||
{
|
||||
struct dentry *d;
|
||||
enum { NAMESZ = 10 };
|
||||
char name[NAMESZ];
|
||||
int busnum = ubus? ubus->busnum: 0;
|
||||
int rc;
|
||||
|
||||
rc = snprintf(name, NAMESZ, "%dt", busnum);
|
||||
if (rc <= 0 || rc >= NAMESZ)
|
||||
goto err_print_t;
|
||||
d = debugfs_create_file(name, 0600, mon_dir, mbus, &mon_fops_text_t);
|
||||
if (d == NULL)
|
||||
goto err_create_t;
|
||||
mbus->dent_t = d;
|
||||
if (ubus != NULL) {
|
||||
rc = snprintf(name, NAMESZ, "%dt", busnum);
|
||||
if (rc <= 0 || rc >= NAMESZ)
|
||||
goto err_print_t;
|
||||
d = debugfs_create_file(name, 0600, mon_dir, mbus,
|
||||
&mon_fops_text_t);
|
||||
if (d == NULL)
|
||||
goto err_create_t;
|
||||
mbus->dent_t = d;
|
||||
}
|
||||
|
||||
rc = snprintf(name, NAMESZ, "%du", busnum);
|
||||
if (rc <= 0 || rc >= NAMESZ)
|
||||
@@ -694,8 +698,10 @@ err_print_s:
|
||||
mbus->dent_u = NULL;
|
||||
err_create_u:
|
||||
err_print_u:
|
||||
debugfs_remove(mbus->dent_t);
|
||||
mbus->dent_t = NULL;
|
||||
if (ubus != NULL) {
|
||||
debugfs_remove(mbus->dent_t);
|
||||
mbus->dent_t = NULL;
|
||||
}
|
||||
err_create_t:
|
||||
err_print_t:
|
||||
return 0;
|
||||
@@ -704,7 +710,8 @@ err_print_t:
|
||||
void mon_text_del(struct mon_bus *mbus)
|
||||
{
|
||||
debugfs_remove(mbus->dent_u);
|
||||
debugfs_remove(mbus->dent_t);
|
||||
if (mbus->dent_t != NULL)
|
||||
debugfs_remove(mbus->dent_t);
|
||||
debugfs_remove(mbus->dent_s);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user