No description
Find a file
Luc Van Oostenryck becef184df percpu: fix __percpu annotation in asm-generic
The generic implementation of raw_cpu_generic_add_return() is:

        #define raw_cpu_generic_add_return(pcp, val)            \
        ({                                                      \
                typeof(&(pcp)) __p = raw_cpu_ptr(&(pcp));       \
                                                                \
                *__p += val;                                    \
                *__p;                                           \
        })

where the 'pcp' argument is a __percpu lvalue.
There, the variable '__p' is declared as a __percpu pointer
the type of the address of 'pcp') but:
1) the value assigned to it, the return value of raw_cpu_ptr(), is
   a plain (__kernel) pointer, not a __percpu one.
2) this variable is dereferenced just after while a __percpu
   pointer is implicitly __noderef.

So, fix the declaration of the 'pcp' variable to its correct type:
the plain (non-percpu) pointer corresponding to pcp's address,
using the fact that typeof() ignores the address space and the
'noderef' attribute of its agument.

Same for raw_cpu_generic_xchg(), raw_cpu_generic_cmpxchg() &
raw_cpu_generic_cmpxchg_double().

This removes 209 warnings on ARM, 525 on ARM64, 220 on x86 &
more than 2600 on ppc64 (all of them with the default config).

Cc: Tejun Heo <tj@kernel.org>
Cc: Nicholas Piggin <npiggin@gmail.com>
Reported-by: Ben Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Acked-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Dennis Zhou <dennis@kernel.org>
2020-01-31 11:15:59 -08:00
arch * PPC secure guest support 2019-12-04 11:08:30 -08:00
block compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
certs
crypto
Documentation * PPC secure guest support 2019-12-04 11:08:30 -08:00
drivers Additional ACPI updates for 5.5-rc1 2019-12-04 10:56:35 -08:00
fs New code for 5.5: 2019-12-03 13:18:34 -08:00
include percpu: fix __percpu annotation in asm-generic 2020-01-31 11:15:59 -08:00
init Kbuild updates for v5.5 2019-12-02 17:35:04 -08:00
ipc
kernel Additional power management updates for 5.5-rc1 2019-12-04 10:48:09 -08:00
lib pci-v5.5-changes 2019-12-03 13:58:22 -08:00
LICENSES
mm * PPC secure guest support 2019-12-04 11:08:30 -08:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-12-01 20:35:03 -08:00
samples New tracing features: 2019-11-27 11:42:01 -08:00
scripts Kbuild updates for v5.5 2019-12-02 17:35:04 -08:00
security + Features 2019-12-03 12:51:35 -08:00
sound compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
tools pci-v5.5-changes 2019-12-03 13:58:22 -08:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap Here's the main documentation changes for 5.5: 2019-12-02 11:51:02 -08:00
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS pci-v5.5-changes 2019-12-03 13:58:22 -08:00
Makefile Kbuild updates for v5.5 2019-12-02 17:35:04 -08:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.