Re: [PATCH 3/4] usb: typec: set mod_name in driver registration

Heikki Krogerus <[email protected]> Mon, 27 Jul 2026 13:39:09 +0200
Newsgroups org.kernel.vger.linux-embedded,org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb,org.kernel.vger.netdev
Message-ID <[email protected]>
On Wed, Jul 22, 2026 at 12:31:23PM +0900, Shashank Balaji wrote:
> The driver core only creates the sysfs "module" symlink for a built-in
> driver when its struct device_driver has mod_name set (see
> module_add_driver()). This driver left mod_name unset, so its built-in
> form had no such symlink.
> 
> Set mod_name to KBUILD_MODNAME during driver registration. Built-in
> drivers now gain the symlink, while loadable modules are unaffected.
> 
> Co-developed-by: Rahul Bukte <[email protected]>
> Signed-off-by: Rahul Bukte <[email protected]>
> Signed-off-by: Shashank Balaji <[email protected]>

Acked-by: Heikki Krogerus <[email protected]>

> ---
>  include/linux/usb/typec_altmode.h | 4 ++--
>  drivers/usb/typec/bus.c           | 4 +++-
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/include/linux/usb/typec_altmode.h b/include/linux/usb/typec_altmode.h
> index ef21ead551be..92309b569c3a 100644
> --- a/include/linux/usb/typec_altmode.h
> +++ b/include/linux/usb/typec_altmode.h
> @@ -227,9 +227,9 @@ struct typec_altmode_driver {
>   * handle all SVID specific communication.
>   */
>  #define typec_altmode_register_driver(drv) \
> -		__typec_altmode_register_driver(drv, THIS_MODULE)
> +		__typec_altmode_register_driver(drv, THIS_MODULE, KBUILD_MODNAME)
>  int __typec_altmode_register_driver(struct typec_altmode_driver *drv,
> -				    struct module *module);
> +				    struct module *module, const char *mod_name);
>  /**
>   * typec_altmode_unregister_driver - unregisters a USB Type-C alternate mode
>   * 				     device driver
> diff --git a/drivers/usb/typec/bus.c b/drivers/usb/typec/bus.c
> index e84b134a3381..587d3b06ee8d 100644
> --- a/drivers/usb/typec/bus.c
> +++ b/drivers/usb/typec/bus.c
> @@ -383,12 +383,14 @@ void typec_altmode_put_plug(struct typec_altmode *plug)
>  EXPORT_SYMBOL_GPL(typec_altmode_put_plug);
>  
>  int __typec_altmode_register_driver(struct typec_altmode_driver *drv,
> -				    struct module *module)
> +				    struct module *module,
> +				    const char *mod_name)
>  {
>  	if (!drv->probe)
>  		return -EINVAL;
>  
>  	drv->driver.owner = module;
> +	drv->driver.mod_name = mod_name;
>  	drv->driver.bus = &typec_bus;
>  
>  	return driver_register(&drv->driver);
> 
> -- 
> 2.43.0

-- 
heikki