Re: [PATCH v2 02/15] usb: gadget: make config_item_type structures const

Laurent Pinchart
2017-10-18T16:05:11Z

Hi Bhumika,

Thank you for the patch.

On Monday, 16 October 2017 18:18:41 EEST Bhumika Goyal wrote:
> Make these structures const as they are only passed to the const
> argument of the functions config_{group/item}_init_type_name.
>
> Signed-off-by: Bhumika Goyal <bhumirks-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> * Changes in v2- Combine all the followup patches and the constification
> patches into a series.
>
> drivers/usb/gadget/function/f_acm.c | 2 +-
> drivers/usb/gadget/function/f_ecm.c | 2 +-
> drivers/usb/gadget/function/f_eem.c | 2 +-
> drivers/usb/gadget/function/f_fs.c | 2 +-
> drivers/usb/gadget/function/f_hid.c | 2 +-
> drivers/usb/gadget/function/f_loopback.c | 2 +-
> drivers/usb/gadget/function/f_mass_storage.c | 4 +--
> drivers/usb/gadget/function/f_midi.c | 2 +-
> drivers/usb/gadget/function/f_ncm.c | 2 +-
> drivers/usb/gadget/function/f_obex.c | 2 +-
> drivers/usb/gadget/function/f_phonet.c | 2 +-
> drivers/usb/gadget/function/f_printer.c | 2 +-
> drivers/usb/gadget/function/f_rndis.c | 2 +-
> drivers/usb/gadget/function/f_serial.c | 2 +-
> drivers/usb/gadget/function/f_sourcesink.c | 2 +-
> drivers/usb/gadget/function/f_subset.c | 2 +-
> drivers/usb/gadget/function/f_tcm.c | 2 +-
> drivers/usb/gadget/function/f_uac1.c | 2 +-
> drivers/usb/gadget/function/f_uac1_legacy.c | 2 +-
> drivers/usb/gadget/function/f_uac2.c | 2 +-
> drivers/usb/gadget/function/uvc_configfs.c | 50 ++++++++++++------------
> 21 files changed, 46 insertions(+), 46 deletions(-)

[snip]

> diff --git a/drivers/usb/gadget/function/uvc_configfs.c
> b/drivers/usb/gadget/function/uvc_configfs.c index 844cb73..f76619f 100644
> --- a/drivers/usb/gadget/function/uvc_configfs.c
> +++ b/drivers/usb/gadget/function/uvc_configfs.c
> @@ -127,7 +127,7 @@ static struct uvcg_control_header
> *to_uvcg_control_header(struct config_item *it NULL,
> };
>
> -static struct config_item_type uvcg_control_header_type = {
> +static const struct config_item_type uvcg_control_header_type = {
> .ct_attrs = uvcg_control_header_attrs,
> .ct_owner = THIS_MODULE,
> };
> @@ -170,7 +170,7 @@ static void uvcg_control_header_drop(struct config_group
> *group, .drop_item = uvcg_control_header_drop,
> };
>
> -static struct config_item_type uvcg_control_header_grp_type = {
> +static const struct config_item_type uvcg_control_header_grp_type = {
> .ct_group_ops = &uvcg_control_header_grp_ops,
> .ct_owner = THIS_MODULE,
> };
> @@ -265,7 +265,7 @@ static ssize_t uvcg_default_processing_bm_controls_show(
> NULL,
> };
>
> -static struct config_item_type uvcg_default_processing_type = {
> +static const struct config_item_type uvcg_default_processing_type = {
> .ct_attrs = uvcg_default_processing_attrs,
> .ct_owner = THIS_MODULE,
> };
> @@ -277,7 +277,7 @@ static ssize_t uvcg_default_processing_bm_controls_show(
> struct config_group group;
> } uvcg_processing_grp;
>
> -static struct config_item_type uvcg_processing_grp_type = {
> +static const struct config_item_type uvcg_processing_grp_type = {
> .ct_owner = THIS_MODULE,
> };
>
> @@ -382,7 +382,7 @@ static ssize_t uvcg_default_camera_bm_controls_show(
> NULL,
> };
>
> -static struct config_item_type uvcg_default_camera_type = {
> +static const struct config_item_type uvcg_default_camera_type = {
> .ct_attrs = uvcg_default_camera_attrs,
> .ct_owner = THIS_MODULE,
> };
> @@ -394,7 +394,7 @@ static ssize_t uvcg_default_camera_bm_controls_show(
> struct config_group group;
> } uvcg_camera_grp;
>
> -static struct config_item_type uvcg_camera_grp_type = {
> +static const struct config_item_type uvcg_camera_grp_type = {
> .ct_owner = THIS_MODULE,
> };
>
> @@ -460,7 +460,7 @@ static ssize_t uvcg_default_camera_bm_controls_show(
> NULL,
> };
>
> -static struct config_item_type uvcg_default_output_type = {
> +static const struct config_item_type uvcg_default_output_type = {
> .ct_attrs = uvcg_default_output_attrs,
> .ct_owner = THIS_MODULE,
> };
> @@ -472,7 +472,7 @@ static ssize_t uvcg_default_camera_bm_controls_show(
> struct config_group group;
> } uvcg_output_grp;
>
> -static struct config_item_type uvcg_output_grp_type = {
> +static const struct config_item_type uvcg_output_grp_type = {
> .ct_owner = THIS_MODULE,
> };
>
> @@ -481,7 +481,7 @@ static ssize_t uvcg_default_camera_bm_controls_show(
> struct config_group group;
> } uvcg_terminal_grp;
>
> -static struct config_item_type uvcg_terminal_grp_type = {
> +static const struct config_item_type uvcg_terminal_grp_type = {
> .ct_owner = THIS_MODULE,
> };
>
> @@ -586,7 +586,7 @@ static void uvcg_control_class_drop_link(struct
> config_item *src, .drop_link = uvcg_control_class_drop_link,
> };
>
> -static struct config_item_type uvcg_control_class_type = {
> +static const struct config_item_type uvcg_control_class_type = {
> .ct_item_ops = &uvcg_control_class_item_ops,
> .ct_owner = THIS_MODULE,
> };
> @@ -596,7 +596,7 @@ static void uvcg_control_class_drop_link(struct
> config_item *src, struct config_group group;
> } uvcg_control_class_grp;
>
> -static struct config_item_type uvcg_control_class_grp_type = {
> +static const struct config_item_type uvcg_control_class_grp_type = {
> .ct_owner = THIS_MODULE,
> };
>
> @@ -605,7 +605,7 @@ static void uvcg_control_class_drop_link(struct
> config_item *src, struct config_group group;
> } uvcg_control_grp;
>
> -static struct config_item_type uvcg_control_grp_type = {
> +static const struct config_item_type uvcg_control_grp_type = {
> .ct_owner = THIS_MODULE,
> };
>
> @@ -857,7 +857,7 @@ static void uvcg_streaming_header_drop_link(struct
> config_item *src, NULL,
> };
>
> -static struct config_item_type uvcg_streaming_header_type = {
> +static const struct config_item_type uvcg_streaming_header_type = {
> .ct_item_ops = &uvcg_streaming_header_item_ops,
> .ct_attrs = uvcg_streaming_header_attrs,
> .ct_owner = THIS_MODULE,
> @@ -901,7 +901,7 @@ static void uvcg_streaming_header_drop(struct
> config_group *group, .drop_item = uvcg_streaming_header_drop,
> };
>
> -static struct config_item_type uvcg_streaming_header_grp_type = {
> +static const struct config_item_type uvcg_streaming_header_grp_type = {
> .ct_group_ops = &uvcg_streaming_header_grp_ops,
> .ct_owner = THIS_MODULE,
> };
> @@ -1150,7 +1150,7 @@ static ssize_t
> uvcg_frame_dw_frame_interval_store(struct config_item *item, NULL,
> };
>
> -static struct config_item_type uvcg_frame_type = {
> +static const struct config_item_type uvcg_frame_type = {
> .ct_attrs = uvcg_frame_attrs,
> .ct_owner = THIS_MODULE,
> };
> @@ -1419,7 +1419,7 @@ static ssize_t
> uvcg_uncompressed_guid_format_store(struct config_item *item, NULL,
> };
>
> -static struct config_item_type uvcg_uncompressed_type = {
> +static const struct config_item_type uvcg_uncompressed_type = {
> .ct_group_ops = &uvcg_uncompressed_group_ops,
> .ct_attrs = uvcg_uncompressed_attrs,
> .ct_owner = THIS_MODULE,
> @@ -1469,7 +1469,7 @@ static void uvcg_uncompressed_drop(struct config_group
> *group, .drop_item = uvcg_uncompressed_drop,
> };
>
> -static struct config_item_type uvcg_uncompressed_grp_type = {
> +static const struct config_item_type uvcg_uncompressed_grp_type = {
> .ct_group_ops = &uvcg_uncompressed_grp_ops,
> .ct_owner = THIS_MODULE,
> };
> @@ -1619,7 +1619,7 @@ static struct uvcg_mjpeg *to_uvcg_mjpeg(struct
> config_item *item) NULL,
> };
>
> -static struct config_item_type uvcg_mjpeg_type = {
> +static const struct config_item_type uvcg_mjpeg_type = {
> .ct_group_ops = &uvcg_mjpeg_group_ops,
> .ct_attrs = uvcg_mjpeg_attrs,
> .ct_owner = THIS_MODULE,
> @@ -1663,7 +1663,7 @@ static void uvcg_mjpeg_drop(struct config_group
> *group, .drop_item = uvcg_mjpeg_drop,
> };
>
> -static struct config_item_type uvcg_mjpeg_grp_type = {
> +static const struct config_item_type uvcg_mjpeg_grp_type = {
> .ct_group_ops = &uvcg_mjpeg_grp_ops,
> .ct_owner = THIS_MODULE,
> };
> @@ -1728,7 +1728,7 @@ static void uvcg_mjpeg_drop(struct config_group
> *group, NULL,
> };
>
> -static struct config_item_type uvcg_default_color_matching_type = {
> +static const struct config_item_type uvcg_default_color_matching_type = {
> .ct_attrs = uvcg_default_color_matching_attrs,
> .ct_owner = THIS_MODULE,
> };
> @@ -1740,7 +1740,7 @@ static void uvcg_mjpeg_drop(struct config_group
> *group, struct config_group group;
> } uvcg_color_matching_grp;
>
> -static struct config_item_type uvcg_color_matching_grp_type = {
> +static const struct config_item_type uvcg_color_matching_grp_type = {
> .ct_owner = THIS_MODULE,
> };
>
> @@ -2085,7 +2085,7 @@ static void uvcg_streaming_class_drop_link(struct
> config_item *src, .drop_link = uvcg_streaming_class_drop_link,
> };
>
> -static struct config_item_type uvcg_streaming_class_type = {
> +static const struct config_item_type uvcg_streaming_class_type = {
> .ct_item_ops = &uvcg_streaming_class_item_ops,
> .ct_owner = THIS_MODULE,
> };
> @@ -2095,7 +2095,7 @@ static void uvcg_streaming_class_drop_link(struct
> config_item *src, struct config_group group;
> } uvcg_streaming_class_grp;
>
> -static struct config_item_type uvcg_streaming_class_grp_type = {
> +static const struct config_item_type uvcg_streaming_class_grp_type = {
> .ct_owner = THIS_MODULE,
> };
>
> @@ -2104,7 +2104,7 @@ static void uvcg_streaming_class_drop_link(struct
> config_item *src, struct config_group group;
> } uvcg_streaming_grp;
>
> -static struct config_item_type uvcg_streaming_grp_type = {
> +static const struct config_item_type uvcg_streaming_grp_type = {
> .ct_owner = THIS_MODULE,
> };

Now we have 9 const instances of the config_item_type structure that are
identical, with only the .ct_owner field set. Should they be all merged into a
single structure ?

> @@ -2190,7 +2190,7 @@ static void uvc_attr_release(struct config_item *item)
> NULL,
> };
>
> -static struct config_item_type uvc_func_type = {
> +static const struct config_item_type uvc_func_type = {
> .ct_item_ops = &uvc_item_ops,
> .ct_attrs = uvc_attrs,
> .ct_owner = THIS_MODULE,

--
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html