From: Ian Abbott Date: Fri, 17 Feb 2017 11:09:17 +0000 (+0000) Subject: staging: comedi: jr3_pci: pass transform by reference X-Git-Tag: v4.12-rc1~84^2~983 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=8c8022fcd8de5262fbf15177979553c1847bdc55;p=linux.git staging: comedi: jr3_pci: pass transform by reference 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 Signed-off-by: Greg Kroah-Hartman --- 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 */