On 2019/2/12 19:19, Thomas Gleixner wrote:
> On Tue, 12 Feb 2019, Li, Aubrey wrote:
>> On 2019/2/12 16:22, Thomas Gleixner wrote:
>>> On Tue, 12 Feb 2019, Aubrey Li wrote:
>>>> diff --git a/arch/x86/include/asm/processor.h 
>>>> b/arch/x86/include/asm/processor.h
>>>> index d53c54b842da..60ee932070fe 100644
>>>> --- a/arch/x86/include/asm/processor.h
>>>> +++ b/arch/x86/include/asm/processor.h
>>>> @@ -996,5 +996,7 @@ enum l1tf_mitigations {
>>>>  };
>>>>  
>>>>  extern enum l1tf_mitigations l1tf_mitigation;
>>>> +/* Add support for architecture specific output in /proc/pid/status */
>>>> +extern void arch_proc_pid_status(struct seq_file *m, struct task_struct 
>>>> *task);
>>>
>>> Sigh. This is absolutely the wrong place. The weak function is declared and
>>> used in fs/proc/... So the prototype wants to be in a header which is
>>> included from there independent of x86...
>>
>> Can the prototype be in the architecture header if they want to call the
>> function?
> 
> Basic C programming course:
> 
>  The prototype must be available before the declaration of the global
>  function.
> 
> fs/proc/array.c:404:13: warning: no previous prototype for 
> ‘arch_proc_pid_status’ [-Wmissing-prototypes]
>  void __weak arch_proc_pid_status(struct seq_file *m, struct task_struct 
> *task)
> 
> Oh well....

Is this because patch 1/3 applied alone? If the whole patch set are applied,
the prototype is included in <asm/processor.h>, which is at the beginning of
array.c file, so it is available before the declaration.

Thanks,
-Aubrey

Reply via email to