[rt2x00-users] [PATCHv2] rt2x00: Always inline rt2x00pci_enable_interrupt
Gertjan van Wingerde
gwingerde at gmail.com
Fri Apr 15 00:12:22 EST 2011
On Thu, Apr 14, 2011 at 3:02 PM, Helmut Schaa
<helmut.schaa at googlemail.com> wrote:
> This allows the compiler to perform the necessary bitfield calculations
> during compile time instead of run time and thus reduces the number of
> instructions to run during each tasklet invocation. This should improve
> performance in the RX hotpath.
>
> This comes at the cost of a slight increase in the module size (for
> example rt2800pci):
>
> Before:
> text data bss dec hex filename
> 14133 832 4 14969 3a79 drivers/net/wireless/rt2x00/rt2800pci.ko
>
> After:
> text data bss dec hex filename
> 14149 832 4 14985 3a89 drivers/net/wireless/rt2x00/rt2800pci.ko
>
> Signed-off-by: Helmut Schaa <helmut.schaa at googlemail.com>
Well, my guess is that the static inline does not allow the compiler
to do compile-time
calculations, but that it is more a side-effect of the inlining, via
which the optimizer of
the compiler can do a better job.
Anyway:
Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
> ---
> drivers/net/wireless/rt2x00/rt2400pci.c | 4 ++--
> drivers/net/wireless/rt2x00/rt2500pci.c | 4 ++--
> drivers/net/wireless/rt2x00/rt2800pci.c | 4 ++--
> drivers/net/wireless/rt2x00/rt61pci.c | 4 ++--
> 4 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
> index 6b7206e..01e9517 100644
> --- a/drivers/net/wireless/rt2x00/rt2400pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2400pci.c
> @@ -1314,8 +1314,8 @@ static void rt2400pci_txdone(struct rt2x00_dev *rt2x00dev,
> }
> }
>
> -static void rt2400pci_enable_interrupt(struct rt2x00_dev *rt2x00dev,
> - struct rt2x00_field32 irq_field)
> +static inline void rt2400pci_enable_interrupt(struct rt2x00_dev *rt2x00dev,
> + struct rt2x00_field32 irq_field)
> {
> u32 reg;
>
> diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
> index 82e8012..c8deeeb 100644
> --- a/drivers/net/wireless/rt2x00/rt2500pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2500pci.c
> @@ -1446,8 +1446,8 @@ static void rt2500pci_txdone(struct rt2x00_dev *rt2x00dev,
> }
> }
>
> -static void rt2500pci_enable_interrupt(struct rt2x00_dev *rt2x00dev,
> - struct rt2x00_field32 irq_field)
> +static inline void rt2500pci_enable_interrupt(struct rt2x00_dev *rt2x00dev,
> + struct rt2x00_field32 irq_field)
> {
> u32 reg;
>
> diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
> index 7b898e1..193c65c 100644
> --- a/drivers/net/wireless/rt2x00/rt2800pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
> @@ -778,8 +778,8 @@ static bool rt2800pci_txdone(struct rt2x00_dev *rt2x00dev)
> return !max_tx_done;
> }
>
> -static void rt2800pci_enable_interrupt(struct rt2x00_dev *rt2x00dev,
> - struct rt2x00_field32 irq_field)
> +static inline void rt2800pci_enable_interrupt(struct rt2x00_dev *rt2x00dev,
> + struct rt2x00_field32 irq_field)
> {
> u32 reg;
>
> diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
> index 35c5d20..264508f 100644
> --- a/drivers/net/wireless/rt2x00/rt61pci.c
> +++ b/drivers/net/wireless/rt2x00/rt61pci.c
> @@ -2260,8 +2260,8 @@ static void rt61pci_wakeup(struct rt2x00_dev *rt2x00dev)
> rt61pci_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
> }
>
> -static void rt61pci_enable_interrupt(struct rt2x00_dev *rt2x00dev,
> - struct rt2x00_field32 irq_field)
> +static inline void rt61pci_enable_interrupt(struct rt2x00_dev *rt2x00dev,
> + struct rt2x00_field32 irq_field)
> {
> u32 reg;
>
> --
> 1.7.3.4
>
>
> _______________________________________________
> users mailing list
> users at rt2x00.serialmonkey.com
> http://rt2x00.serialmonkey.com/mailman/listinfo/users_rt2x00.serialmonkey.com
>
--
---
Gertjan
More information about the users
mailing list