On 02/26/2018 03:57 PM, David Rientjes wrote:
On Mon, 26 Feb 2018, Guenter Roeck wrote:clang reports the following compile warning. In file included from mm/vmscan.c:56: ./include/linux/swapops.h:327:22: warning: section attribute is specified on redeclared variable [-Wsection] extern atomic_long_t num_poisoned_pages __read_mostly; ^ ./include/linux/mm.h:2585:22: note: previous declaration is here extern atomic_long_t num_poisoned_pages; ^ Let's use __read_mostly everywhere. Signed-off-by: Guenter Roeck <[email protected]> Cc: Matthias Kaehlcke <[email protected]> --- include/linux/mm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index ad06d42adb1a..bd4bd59f02c1 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2582,7 +2582,7 @@ extern int get_hwpoison_page(struct page *page); extern int sysctl_memory_failure_early_kill; extern int sysctl_memory_failure_recovery; extern void shake_page(struct page *p, int access); -extern atomic_long_t num_poisoned_pages; +extern atomic_long_t num_poisoned_pages __read_mostly; extern int soft_offline_page(struct page *page, int flags);No objection to the patch, of course, but I'm wondering if it's (1) the only such clang compile warning for mm/, and (2) if the re-declaration in
It is the only one I recall seeing in mm/ while testing the clang/retpoline changes with ToT clang 7.0.0, but then I didn't pay too close attention.
mm.h could be avoided by including swapops.h?
Another alternative would be to remove the extern fom swapops.h and have swapops.h include mm.h instead. I chose the least invasive change since I didn't want to risk breaking some other build (after all, maybe there was a reason for declaring num_poisoned_pages in two include files). Guenter

