Revision d6957f3396d0b1ee54d183524550d791054b5ebe authored by Helge Deller on 15 August 2017, 09:34:19 UTC, committed by Helge Deller on 16 August 2017, 19:09:45 UTC
Sometimes people seems unclear when to use the %pS or %pF printk format. For example, see commit 51d96dc2e2dc ("random: fix warning message on ia64 and parisc") which fixed such a wrong format string. The documentation should be more clear about the difference. Signed-off-by: Helge Deller <deller@gmx.de> [pmladek@suse.com: Restructure the entire section] Signed-off-by: Petr Mladek <pmladek@suse.com> Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
1 parent 4098116
checksum.c
/*
* Copyright 2010 Tilera Corporation. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, version 2.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
* NON INFRINGEMENT. See the GNU General Public License for
* more details.
* Support code for the main lib/checksum.c.
*/
#include <net/checksum.h>
#include <linux/module.h>
__wsum do_csum(const unsigned char *buff, int len)
{
int odd, count;
unsigned long result = 0;
if (len <= 0)
goto out;
odd = 1 & (unsigned long) buff;
if (odd) {
result = (*buff << 8);
len--;
buff++;
}
count = len >> 1; /* nr of 16-bit words.. */
if (count) {
if (2 & (unsigned long) buff) {
result += *(const unsigned short *)buff;
count--;
len -= 2;
buff += 2;
}
count >>= 1; /* nr of 32-bit words.. */
if (count) {
#ifdef __tilegx__
if (4 & (unsigned long) buff) {
unsigned int w = *(const unsigned int *)buff;
result = __insn_v2sadau(result, w, 0);
count--;
len -= 4;
buff += 4;
}
count >>= 1; /* nr of 64-bit words.. */
#endif
/*
* This algorithm could wrap around for very
* large buffers, but those should be impossible.
*/
BUG_ON(count >= 65530);
while (count) {
unsigned long w = *(const unsigned long *)buff;
count--;
buff += sizeof(w);
#ifdef __tilegx__
result = __insn_v2sadau(result, w, 0);
#else
result = __insn_sadah_u(result, w, 0);
#endif
}
#ifdef __tilegx__
if (len & 4) {
unsigned int w = *(const unsigned int *)buff;
result = __insn_v2sadau(result, w, 0);
buff += 4;
}
#endif
}
if (len & 2) {
result += *(const unsigned short *) buff;
buff += 2;
}
}
if (len & 1)
result += *buff;
result = csum_long(result);
if (odd)
result = swab16(result);
out:
return result;
}
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...