Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753083AbbDULNa (ORCPT ); Tue, 21 Apr 2015 07:13:30 -0400 Received: from ozlabs.org ([103.22.144.67]:55060 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751027AbbDULN2 (ORCPT ); Tue, 21 Apr 2015 07:13:28 -0400 From: Rusty Russell To: Aaro Koskinen , Guenter Roeck Cc: linux-kernel@vger.kernel.org, Ralf Baechle , Florian Fainelli , linux-mips@linux-mips.org Subject: Re: mips build failures due to commit 8dd928915a73 (mips: fix up obsolete cpu function usage) In-Reply-To: <20150420210933.GB31618@fuloong-minipc.musicnaut.iki.fi> References: <20150420194028.GA10814@roeck-us.net> <20150420210933.GB31618@fuloong-minipc.musicnaut.iki.fi> User-Agent: Notmuch/0.17 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-pc-linux-gnu) Date: Tue, 21 Apr 2015 13:45:35 +0930 Message-ID: <87fv7up15k.fsf@rustcorp.com.au> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1686 Lines: 44 Aaro Koskinen writes: > Hi, > > On Mon, Apr 20, 2015 at 12:40:28PM -0700, Guenter Roeck wrote: >> the upstream kernel fails to build mips:nlm_xlp_defconfig, >> mips:nlm_xlp_defconfig, mips:cavium_octeon_defconfig, and possibly >> other targets, with errors such as >> >> arch/mips/kernel/smp.c:211:2: error: >> passing argument 2 of 'cpumask_set_cpu' discards 'volatile' qualifier >> from pointer target type >> arch/mips/kernel/process.c:52:2: error: >> passing argument 2 of 'cpumask_test_cpu' discards 'volatile' qualifier >> from pointer target type >> arch/mips/cavium-octeon/smp.c:242:2: error: >> passing argument 2 of 'cpumask_clear_cpu' discards 'volatile' qualifier >> from pointer target type >> >> The problem was introduced with commit 8dd928915a73 (" mips: fix up >> obsolete cpu function usage"). I would send a patch to fix it, but I >> am not sure if removing 'volatile' from the variable declaration(s) >> would be a good idea. > > I think removing volatile from cpu_callin_map declaration should be OK, > since test_cpu (only reader) uses test_bit which takes care of it: > > static inline int test_bit(int nr, const volatile unsigned long *addr) No, that got replaced too, with cpumask_test_cpu AFAICT. You can open-code it, like so: test_bit(0, cpumask_bits(cpu_callin_map)); But you probably want to put a barrier in that loop instead of relying on volatile. Thanks, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/