Re: [PATCH v3 3/7] x86/hyper-v: reenlightenment notifications support

From: Vitaly Kuznetsov
Date: Tue Jan 23 2018 - 09:07:54 EST


"Michael Kelley (EOSG)" <Michael.H.Kelley@xxxxxxxxxxxxx> writes:

> Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> writes:
>>
>> > "Michael Kelley (EOSG)" <Michael.H.Kelley@xxxxxxxxxxxxx> writes:
>> >
>> >> On Fri, 19 Jan 2018, Thomas Gleixner wrote:
>> >>
>> >>>
>> >>> You added '#include <linux/interrupt.h>' to mshyperv.h which is included in
>> >>> vclock_gettime.c and pulls in other stuff which fails to expand....
>> >>
>> >> Is the declaration of hyperv_reenlightenment_intr() even needed in
>> >> mshyperv.h? The '#include <linux/interrupt.h>' is there for the __irq_entry
>> >> annotation on that declaration. There's a declaration of the parallel (and
>> >> unannotated) hyperv_vector_handler(), but that looks like a fossil that
>> >> isn't needed either.
>> >>
>> >
>> > True,
>> >
>> > the only need for the declaration in mshyperv.h is to silence "warning:
>> > no previous prototype for âhyperv_reenlightenment_intrâ"; I'm not sure
>> > if this actually needs fixing.
>>
>> It seems we can get away with dropping '__visible' and '__irq_entry'
>> qualifiers from 'hyperv_reenlightenment_intr' declaration in mshyperv.h
>> while keeping them in hv_init.c for the implementation. This way we can
>> avoid the nasty 'no previous prototype' warning and not have to add
>> '#include <linux/interrupt.h>' to mshyperv.h breaking vdso.
>
> Where exactly is the 'no previous prototype' warning being generated?

It is generated while compiling the implementation in hv_init.c, every
non-static function needs a previously defined prototype.

--
Vitaly