Date: Sat, 28 Aug 2010 14:22:27 +0200 (CEST) From: Stefan Richter Subject: firewire: ohci: add some "unlikely" hints Mark evt_no_status and evt_bus_reset packet reception events as ones that occur rarely. Also, inline the debug flag check of log_ar_at_event(). [The same is hopefully not necessary for log_irqs() which is only called at a single site and hence auto-inlined by the compiler.] Signed-off-by: Stefan Richter --- drivers/firewire/ohci.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) Index: b/drivers/firewire/ohci.c =================================================================== --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c @@ -416,14 +416,11 @@ static const char *phys[] = { [0x2] = "self-id packet", [0x3] = "-reserved-", }; -static void log_ar_at_event(char dir, int speed, u32 *header, int evt) +static void _ar_at_event(char dir, int speed, u32 *header, int evt) { int tcode = header[0] >> 4 & 0xf; char specific[12]; - if (likely(!(param_debug & OHCI_PARAM_DEBUG_AT_AR))) - return; - if (unlikely(evt >= ARRAY_SIZE(evts))) evt = 0x1f; @@ -474,6 +471,12 @@ static void log_ar_at_event(char dir, in } } +static inline void log_ar_at_event(char dir, int speed, u32 *header, int evt) +{ + if (unlikely(param_debug & OHCI_PARAM_DEBUG_AT_AR)) + _ar_at_event(dir, speed, header, evt); +} + #else #define param_debug 0 @@ -722,7 +725,7 @@ static __le32 *handle_ar_packet(struct a * Several controllers, notably from NEC and VIA, forget to * write ack_complete status at PHY packet reception. */ - if (evt == OHCI1394_evt_no_status && + if (unlikely(evt == OHCI1394_evt_no_status) && (p.header[0] & 0xff) == (OHCI1394_phy_tcode << 4)) p.ack = ACK_COMPLETE; @@ -739,7 +742,7 @@ static __le32 *handle_ar_packet(struct a * wrong generation. We set the correct generation for these * at a slightly incorrect time (in bus_reset_tasklet). */ - if (evt == OHCI1394_evt_bus_reset) { + if (unlikely(evt == OHCI1394_evt_bus_reset)) { if (!(ohci->quirks & QUIRK_RESET_PACKET)) ohci->request_generation = (p.header[2] >> 16) & 0xff; } else if (ctx == &ohci->ar_request_ctx) {