audit: Use hex_byte_pack_upper
authorJoe Perches <joe@perches.com>
Tue, 14 Jan 2014 07:31:27 +0000 (23:31 -0800)
committerEric Paris <eparis@redhat.com>
Tue, 14 Jan 2014 19:53:50 +0000 (14:53 -0500)
Using the generic kernel function causes the
object size to increase with gcc 4.8.1.

$ size kernel/audit.o*
   text    data     bss     dec     hex filename
  18577    6079    8436   33092    8144 kernel/audit.o.new
  18579    6015    8420   33014    80f6 kernel/audit.o.old

Unsigned...

kernel/audit.c

index 9daf243..b5e6fd8 100644 (file)
@@ -1466,7 +1466,6 @@ void audit_log_n_hex(struct audit_buffer *ab, const unsigned char *buf,
        int i, avail, new_len;
        unsigned char *ptr;
        struct sk_buff *skb;
-       static const unsigned char *hex = "0123456789ABCDEF";
 
        if (!ab)
                return;
@@ -1484,10 +1483,8 @@ void audit_log_n_hex(struct audit_buffer *ab, const unsigned char *buf,
        }
 
        ptr = skb_tail_pointer(skb);
-       for (i=0; i<len; i++) {
-               *ptr++ = hex[(buf[i] & 0xF0)>>4]; /* Upper nibble */
-               *ptr++ = hex[buf[i] & 0x0F];      /* Lower nibble */
-       }
+       for (i = 0; i < len; i++)
+               ptr = hex_byte_pack_upper(ptr, buf[i]);
        *ptr = 0;
        skb_put(skb, len << 1); /* new string is twice the old string */
 }