Local function `set_transforms` has a parameter of type `struct jr3_pci_transform`. This has a size 32 bytes, which is quite large for passing around in a function call. Change it to use type `const struct jr3_pci_transform *`. (In practice, it is probably inlined by the compiler anyway, but doing this seems to save a few bytes.) Signed-off-by: Ian Abbott <abbotti@xxxxxxxxx> --- drivers/staging/comedi/drivers/jr3_pci.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/jr3_pci.c b/drivers/staging/comedi/drivers/jr3_pci.c index 59030f3b382b..997f97089df8 100644 --- a/drivers/staging/comedi/drivers/jr3_pci.c +++ b/drivers/staging/comedi/drivers/jr3_pci.c @@ -141,19 +141,19 @@ static int is_complete(struct jr3_channel __iomem *channel) } static void set_transforms(struct jr3_channel __iomem *channel, - struct jr3_pci_transform transf, short num) + const struct jr3_pci_transform *transf, short num) { int i; num &= 0x000f; /* Make sure that 0 <= num <= 15 */ for (i = 0; i < 8; i++) { set_u16(&channel->transforms[num].link[i].link_type, - transf.link[i].link_type); + transf->link[i].link_type); udelay(1); set_s16(&channel->transforms[num].link[i].link_amount, - transf.link[i].link_amount); + transf->link[i].link_amount); udelay(1); - if (transf.link[i].link_type == end_x_form) + if (transf->link[i].link_type == end_x_form) break; } } @@ -505,7 +505,7 @@ jr3_pci_poll_subdevice(struct comedi_subdevice *s) transf.link[i].link_amount = 0; } - set_transforms(channel, transf, 0); + set_transforms(channel, &transf, 0); use_transform(channel, 0); spriv->state = state_jr3_init_transform_complete; /* Allow 20 ms for completion */ -- 2.11.0 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel