Subject: Re: linux-next: build failure after merge of the edac-amd tree

From: Arnd Bergmann <[email-masked]>
Date: Mon, 01 Jun 2015 16:36:20 +0200

On Monday 01 June 2015 11:51:27 Borislav Petkov wrote:
> On Mon, Jun 01, 2015 at 05:07:42PM +1000, Stephen Rothwell wrote:
> > Hi Borislav,
> > 
> > After merging the edac-amd tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
> > 
> > drivers/edac/xgene_edac.c: In function 'xgene_edac_pmd_l2c_version1':
> > drivers/edac/xgene_edac.c:792:2: error: implicit declaration of function 'MIDR_VARIANT' [-Werror=implicit-function-declaration]
> >   switch (MIDR_VARIANT(read_cpuid_id())) {
> >   ^
> > drivers/edac/xgene_edac.c:792:2: error: implicit declaration of function 'read_cpuid_id' [-Werror=implicit-function-declaration]
> > drivers/edac/xgene_edac.c:794:3: error: implicit declaration of function 'MIDR_REVISION' [-Werror=implicit-function-declaration]
> >    switch (MIDR_REVISION(read_cpuid_id())) {
> >    ^
> > drivers/edac/xgene_edac.c:797:4: error: implicit declaration of function 'read_cpuid' [-Werror=implicit-function-declaration]
> >     switch (REVIDR_MINOR_REV(read_cpuid(REVIDR_EL1))) {
> >     ^
> > drivers/edac/xgene_edac.c:797:40: error: 'REVIDR_EL1' undeclared (first use in this function)
> >     switch (REVIDR_MINOR_REV(read_cpuid(REVIDR_EL1))) {
> >                                         ^
> > drivers/edac/xgene_edac.c:790:37: note: in definition of macro 'REVIDR_MINOR_REV'
> >   #define REVIDR_MINOR_REV(revidr) ((revidr) & 0x00000007)
> >                                      ^
> > drivers/edac/xgene_edac.c:797:40: note: each undeclared identifier is reported only once for each function it appears in
> >     switch (REVIDR_MINOR_REV(read_cpuid(REVIDR_EL1))) {
> >                                         ^
> > drivers/edac/xgene_edac.c:790:37: note: in definition of macro 'REVIDR_MINOR_REV'
> >   #define REVIDR_MINOR_REV(revidr) ((revidr) & 0x00000007)
> >                                      ^
> > 
> > Caused by commit  ("EDAC: Add APM X-Gene SoC EDAC driver").  You can't
> > use COMPIlE_TEST for drivers that use arch specific APIs ...
> 
> Yeah, the COMPIlE_TEST thing was not such a good idea, after all.
> 

At least it should have been tested.

Can we instead just kill the CPUID check? It has absolutely no business
in a device driver like this, and the driver should be made to build
fine on all architectures.

	Arnd