linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] usb: gadget: configfs: several cleanup change
@ 2021-11-18  4:53 Linyu Yuan
  2021-11-18  4:53 ` [PATCH 1/4] usb: gadget: configfs: simplify os_desc_item_to_gadget_info() helper Linyu Yuan
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Linyu Yuan @ 2021-11-18  4:53 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman; +Cc: linux-usb, Jack Pham, Linyu Yuan

only cleanup change, please check each change following.

Linyu Yuan (4):
  usb: gadget: configfs: simplify os_desc_item_to_gadget_info() helper
  usb: gadget: configfs: remove os_desc_attr_release()
  usb: gadget: configfs: use to_config_usb_cfg() in os_desc_link()
  usb: gadget: configfs: use to_usb_function_instance() in cfg (un)link
    func

 drivers/usb/gadget/configfs.c | 39 +++++++++------------------------------
 1 file changed, 9 insertions(+), 30 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/4] usb: gadget: configfs: simplify os_desc_item_to_gadget_info() helper
  2021-11-18  4:53 [PATCH 0/4] usb: gadget: configfs: several cleanup change Linyu Yuan
@ 2021-11-18  4:53 ` Linyu Yuan
  2021-11-18  4:53 ` [PATCH 2/4] usb: gadget: configfs: remove os_desc_attr_release() Linyu Yuan
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Linyu Yuan @ 2021-11-18  4:53 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman; +Cc: linux-usb, Jack Pham, Linyu Yuan

since os_desc_group is already a member of struct gadget_info,
we can simply just use container_of() to retrieve the latter,
without needing to dereference the cg_item's parent pointer.

use os_desc_item_to_gadget_info() helper in os_desc (un)link function.

Reviewed-by: Jack Pham <quic_jackp@quicinc.com>
Signed-off-by: Linyu Yuan <quic_linyyuan@quicinc.com>
---
 drivers/usb/gadget/configfs.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index 36c611d..ac35fea 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -791,7 +791,8 @@ static inline struct os_desc *to_os_desc(struct config_item *item)
 static inline struct gadget_info *os_desc_item_to_gadget_info(
 		struct config_item *item)
 {
-	return to_gadget_info(to_os_desc(item)->group.cg_item.ci_parent);
+	return container_of(to_config_group(item),
+			struct gadget_info, os_desc_group);
 }
 
 static ssize_t os_desc_use_show(struct config_item *item, char *page)
@@ -895,8 +896,7 @@ static void os_desc_attr_release(struct config_item *item)
 static int os_desc_link(struct config_item *os_desc_ci,
 			struct config_item *usb_cfg_ci)
 {
-	struct gadget_info *gi = container_of(to_config_group(os_desc_ci),
-					struct gadget_info, os_desc_group);
+	struct gadget_info *gi = os_desc_item_to_gadget_info(os_desc_ci);
 	struct usb_composite_dev *cdev = &gi->cdev;
 	struct config_usb_cfg *c_target =
 		container_of(to_config_group(usb_cfg_ci),
@@ -930,8 +930,7 @@ static int os_desc_link(struct config_item *os_desc_ci,
 static void os_desc_unlink(struct config_item *os_desc_ci,
 			  struct config_item *usb_cfg_ci)
 {
-	struct gadget_info *gi = container_of(to_config_group(os_desc_ci),
-					struct gadget_info, os_desc_group);
+	struct gadget_info *gi = os_desc_item_to_gadget_info(os_desc_ci);
 	struct usb_composite_dev *cdev = &gi->cdev;
 
 	mutex_lock(&gi->lock);
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/4] usb: gadget: configfs: remove os_desc_attr_release()
  2021-11-18  4:53 [PATCH 0/4] usb: gadget: configfs: several cleanup change Linyu Yuan
  2021-11-18  4:53 ` [PATCH 1/4] usb: gadget: configfs: simplify os_desc_item_to_gadget_info() helper Linyu Yuan
@ 2021-11-18  4:53 ` Linyu Yuan
  2021-11-18  4:53 ` [PATCH 3/4] usb: gadget: configfs: use to_config_usb_cfg() in os_desc_link() Linyu Yuan
  2021-11-18  4:53 ` [PATCH 4/4] usb: gadget: configfs: use to_usb_function_instance() in cfg (un)link func Linyu Yuan
  3 siblings, 0 replies; 5+ messages in thread
From: Linyu Yuan @ 2021-11-18  4:53 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman; +Cc: linux-usb, Jack Pham, Linyu Yuan

it is not allow to create sub group under os_desc,

/sys/kernel/config/usb_gadget/dummy/os_desc # mkdir dummy
mkdir: can't create directory 'dummy': Operation not permitted

no one will kmalloc() os_desc entry and kfree(os_desc) will never be called.
static void os_desc_attr_release(struct config_item *item)
{
       struct os_desc *os_desc = to_os_desc(item);
       kfree(os_desc);
}

remove struct os_desc definition, to_os_desc() and os_desc_attr_release().

Reviewed-by: Jack Pham <quic_jackp@quicinc.com>
Signed-off-by: Linyu Yuan <quic_linyyuan@quicinc.com>
---
 drivers/usb/gadget/configfs.c | 16 ----------------
 1 file changed, 16 deletions(-)

diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index ac35fea..ae0890a 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -89,10 +89,6 @@ struct gadget_strings {
 	struct list_head list;
 };
 
-struct os_desc {
-	struct config_group group;
-};
-
 struct gadget_config_name {
 	struct usb_gadget_strings stringtab_dev;
 	struct usb_string strings;
@@ -783,11 +779,6 @@ static void gadget_strings_attr_release(struct config_item *item)
 USB_CONFIG_STRING_RW_OPS(gadget_strings);
 USB_CONFIG_STRINGS_LANG(gadget_strings, gadget_info);
 
-static inline struct os_desc *to_os_desc(struct config_item *item)
-{
-	return container_of(to_config_group(item), struct os_desc, group);
-}
-
 static inline struct gadget_info *os_desc_item_to_gadget_info(
 		struct config_item *item)
 {
@@ -887,12 +878,6 @@ static struct configfs_attribute *os_desc_attrs[] = {
 	NULL,
 };
 
-static void os_desc_attr_release(struct config_item *item)
-{
-	struct os_desc *os_desc = to_os_desc(item);
-	kfree(os_desc);
-}
-
 static int os_desc_link(struct config_item *os_desc_ci,
 			struct config_item *usb_cfg_ci)
 {
@@ -942,7 +927,6 @@ static void os_desc_unlink(struct config_item *os_desc_ci,
 }
 
 static struct configfs_item_operations os_desc_ops = {
-	.release                = os_desc_attr_release,
 	.allow_link		= os_desc_link,
 	.drop_link		= os_desc_unlink,
 };
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/4] usb: gadget: configfs: use to_config_usb_cfg() in os_desc_link()
  2021-11-18  4:53 [PATCH 0/4] usb: gadget: configfs: several cleanup change Linyu Yuan
  2021-11-18  4:53 ` [PATCH 1/4] usb: gadget: configfs: simplify os_desc_item_to_gadget_info() helper Linyu Yuan
  2021-11-18  4:53 ` [PATCH 2/4] usb: gadget: configfs: remove os_desc_attr_release() Linyu Yuan
@ 2021-11-18  4:53 ` Linyu Yuan
  2021-11-18  4:53 ` [PATCH 4/4] usb: gadget: configfs: use to_usb_function_instance() in cfg (un)link func Linyu Yuan
  3 siblings, 0 replies; 5+ messages in thread
From: Linyu Yuan @ 2021-11-18  4:53 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman; +Cc: linux-usb, Jack Pham, Linyu Yuan

replace open-coded container_of() with to_config_usb_cfg() helper.

Reviewed-by: Jack Pham <quic_jackp@quicinc.com>
Signed-off-by: Linyu Yuan <quic_linyyuan@quicinc.com>
---
 drivers/usb/gadget/configfs.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index ae0890a..ff0fb33 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -883,9 +883,7 @@ static int os_desc_link(struct config_item *os_desc_ci,
 {
 	struct gadget_info *gi = os_desc_item_to_gadget_info(os_desc_ci);
 	struct usb_composite_dev *cdev = &gi->cdev;
-	struct config_usb_cfg *c_target =
-		container_of(to_config_group(usb_cfg_ci),
-			     struct config_usb_cfg, group);
+	struct config_usb_cfg *c_target = to_config_usb_cfg(usb_cfg_ci);
 	struct usb_configuration *c;
 	int ret;
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 4/4] usb: gadget: configfs: use to_usb_function_instance() in cfg (un)link func
  2021-11-18  4:53 [PATCH 0/4] usb: gadget: configfs: several cleanup change Linyu Yuan
                   ` (2 preceding siblings ...)
  2021-11-18  4:53 ` [PATCH 3/4] usb: gadget: configfs: use to_config_usb_cfg() in os_desc_link() Linyu Yuan
@ 2021-11-18  4:53 ` Linyu Yuan
  3 siblings, 0 replies; 5+ messages in thread
From: Linyu Yuan @ 2021-11-18  4:53 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman; +Cc: linux-usb, Jack Pham, Linyu Yuan

replace open-coded container_of() with to_usb_function_instance() helper.

Reviewed-by: Jack Pham <quic_jackp@quicinc.com>
Signed-off-by: Linyu Yuan <quic_linyyuan@quicinc.com>
---
 drivers/usb/gadget/configfs.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index ff0fb33..d4a678c 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -416,9 +416,8 @@ static int config_usb_cfg_link(
 	struct config_usb_cfg *cfg = to_config_usb_cfg(usb_cfg_ci);
 	struct gadget_info *gi = cfg_to_gadget_info(cfg);
 
-	struct config_group *group = to_config_group(usb_func_ci);
-	struct usb_function_instance *fi = container_of(group,
-			struct usb_function_instance, group);
+	struct usb_function_instance *fi =
+			to_usb_function_instance(usb_func_ci);
 	struct usb_function_instance *a_fi;
 	struct usb_function *f;
 	int ret;
@@ -466,9 +465,8 @@ static void config_usb_cfg_unlink(
 	struct config_usb_cfg *cfg = to_config_usb_cfg(usb_cfg_ci);
 	struct gadget_info *gi = cfg_to_gadget_info(cfg);
 
-	struct config_group *group = to_config_group(usb_func_ci);
-	struct usb_function_instance *fi = container_of(group,
-			struct usb_function_instance, group);
+	struct usb_function_instance *fi =
+			to_usb_function_instance(usb_func_ci);
 	struct usb_function *f;
 
 	/*
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-11-18  4:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-18  4:53 [PATCH 0/4] usb: gadget: configfs: several cleanup change Linyu Yuan
2021-11-18  4:53 ` [PATCH 1/4] usb: gadget: configfs: simplify os_desc_item_to_gadget_info() helper Linyu Yuan
2021-11-18  4:53 ` [PATCH 2/4] usb: gadget: configfs: remove os_desc_attr_release() Linyu Yuan
2021-11-18  4:53 ` [PATCH 3/4] usb: gadget: configfs: use to_config_usb_cfg() in os_desc_link() Linyu Yuan
2021-11-18  4:53 ` [PATCH 4/4] usb: gadget: configfs: use to_usb_function_instance() in cfg (un)link func Linyu Yuan

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).