On Thu, Nov 07, 2019 at 10:08:34AM -0600, Parav Pandit wrote: > Provide a module parameter to set alias length to optionally generate > mdev alias. Why do we need it? > > Example to request mdev alias. > $ modprobe mtty alias_length=12 > > Make use of mtty_alias() API when alias_length module parameter is set. > > Signed-off-by: Parav Pandit <parav@xxxxxxxxxxxx> > --- > samples/vfio-mdev/mtty.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index ce84a300a4da..5a69121ed5ec 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -150,6 +150,10 @@ static const struct file_operations vd_fops = { > .owner = THIS_MODULE, > }; > > +static unsigned int mtty_alias_length; > +module_param_named(alias_length, mtty_alias_length, uint, 0444); > +MODULE_PARM_DESC(alias_length, "mdev alias length; default=0"); > + > /* function prototypes */ > > static int mtty_trigger_interrupt(struct mdev_state *mdev_state); > @@ -755,6 +759,9 @@ static int mtty_create(struct kobject *kobj, struct mdev_device *mdev) > list_add(&mdev_state->next, &mdev_devices_list); > mutex_unlock(&mdev_list_lock); > > + if (mtty_alias_length) > + dev_dbg(mdev_dev(mdev), "alias is %s\n", mdev_alias(mdev)); > + > return 0; > } > > @@ -1387,6 +1394,11 @@ static struct attribute_group *mdev_type_groups[] = { > NULL, > }; > > +static unsigned int mtty_get_alias_length(void) > +{ > + return mtty_alias_length; > +} > + > static const struct mdev_parent_ops mdev_fops = { > .owner = THIS_MODULE, > .dev_attr_groups = mtty_dev_groups, > @@ -1399,6 +1411,7 @@ static const struct mdev_parent_ops mdev_fops = { > .read = mtty_read, > .write = mtty_write, > .ioctl = mtty_ioctl, > + .get_alias_length = mtty_get_alias_length > }; > > static void mtty_device_release(struct device *dev) > -- > 2.19.2 >