Messages in this thread | | | Date | Fri, 27 Nov 2015 00:05:17 +0100 (CET) | From | Jiri Kosina <> | Subject | Re: [PATCH] HID: debug: improve hid_debug_event() |
| |
On Tue, 24 Nov 2015, Rasmus Villemoes wrote:
> The code in hid_debug_event() causes horrible code generation. First, > we do a strlen() call for every byte we copy (we're doing a store to > global memory, so gcc has no way of proving that strlen(buf) doesn't > change). Second, since both i, list->tail and HID_DEBUG_BUFSIZE have > signed type, the modulo computation has to take into account the > possibility that list->tail+i is negative, so it's not just a simple > and. > > Fix the former by simply not doing strlen() at all (we have to load > buf[i] anyway, so testing it is almost free) and the latter by > changing i to unsigned. This cuts 29% (69 bytes) of the size of the > function. > > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Agreed, this is much better. Applied to for-4.5/core, thanks Rasmus.
-- Jiri Kosina SUSE Labs
| |