USB: chipidea: remove dentry storage for debugfs file
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 May 2021 17:14:19 +0000 (19:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 May 2021 07:34:34 +0000 (09:34 +0200)
There is no need to store the dentry pointer for a debugfs file that we
only use to remove it when the device goes away.  debugfs can do the
lookup for us instead, saving us some trouble, and making things smaller
overall.

Cc: Peter Chen <peter.chen@kernel.org>
Link: https://lore.kernel.org/r/20210525171419.758146-1-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/chipidea/ci.h
drivers/usb/chipidea/debug.c

index 0697eb9..99440ba 100644 (file)
@@ -195,7 +195,6 @@ struct hw_bank {
  * @phy: pointer to PHY, if any
  * @usb_phy: pointer to USB PHY, if any and if using the USB PHY framework
  * @hcd: pointer to usb_hcd for ehci host driver
- * @debugfs: root dentry for this controller in debugfs
  * @id_event: indicates there is an id event, and handled at ci_otg_work
  * @b_sess_valid_event: indicates there is a vbus event, and handled
  * at ci_otg_work
@@ -249,7 +248,6 @@ struct ci_hdrc {
        /* old usb_phy interface */
        struct usb_phy                  *usb_phy;
        struct usb_hcd                  *hcd;
-       struct dentry                   *debugfs;
        bool                            id_event;
        bool                            b_sess_valid_event;
        bool                            imx28_write_fix;
index da5d18c..faf6b07 100644 (file)
@@ -342,26 +342,20 @@ DEFINE_SHOW_ATTRIBUTE(ci_registers);
  */
 void dbg_create_files(struct ci_hdrc *ci)
 {
-       ci->debugfs = debugfs_create_dir(dev_name(ci->dev), usb_debug_root);
-
-       debugfs_create_file("device", S_IRUGO, ci->debugfs, ci,
-                           &ci_device_fops);
-       debugfs_create_file("port_test", S_IRUGO | S_IWUSR, ci->debugfs, ci,
-                           &ci_port_test_fops);
-       debugfs_create_file("qheads", S_IRUGO, ci->debugfs, ci,
-                           &ci_qheads_fops);
-       debugfs_create_file("requests", S_IRUGO, ci->debugfs, ci,
-                           &ci_requests_fops);
-
-       if (ci_otg_is_fsm_mode(ci)) {
-               debugfs_create_file("otg", S_IRUGO, ci->debugfs, ci,
-                                   &ci_otg_fops);
-       }
+       struct dentry *dir;
+
+       dir = debugfs_create_dir(dev_name(ci->dev), usb_debug_root);
+
+       debugfs_create_file("device", S_IRUGO, dir, ci, &ci_device_fops);
+       debugfs_create_file("port_test", S_IRUGO | S_IWUSR, dir, ci, &ci_port_test_fops);
+       debugfs_create_file("qheads", S_IRUGO, dir, ci, &ci_qheads_fops);
+       debugfs_create_file("requests", S_IRUGO, dir, ci, &ci_requests_fops);
+
+       if (ci_otg_is_fsm_mode(ci))
+               debugfs_create_file("otg", S_IRUGO, dir, ci, &ci_otg_fops);
 
-       debugfs_create_file("role", S_IRUGO | S_IWUSR, ci->debugfs, ci,
-                           &ci_role_fops);
-       debugfs_create_file("registers", S_IRUGO, ci->debugfs, ci,
-                           &ci_registers_fops);
+       debugfs_create_file("role", S_IRUGO | S_IWUSR, dir, ci, &ci_role_fops);
+       debugfs_create_file("registers", S_IRUGO, dir, ci, &ci_registers_fops);
 }
 
 /**
@@ -370,5 +364,5 @@ void dbg_create_files(struct ci_hdrc *ci)
  */
 void dbg_remove_files(struct ci_hdrc *ci)
 {
-       debugfs_remove_recursive(ci->debugfs);
+       debugfs_remove(debugfs_lookup(dev_name(ci->dev), usb_debug_root));
 }