Re: [Xen-devel] [PATCH] x86/xen/time: fix section mismatch for xen_init_time_ops()
On 01/06/2018 03:35 PM, Nick Desaulniers wrote: > On Tue, Jan 2, 2018 at 7:00 AM, Boris Ostrovsky > wrote: >> On 01/02/2018 09:32 AM, Andrew Cooper wrote: >>> On 02/01/18 14:24, Juergen Gross wrote: On 02/01/18 15:18, Boris Ostrovsky wrote: > On 12/23/2017 09:50 PM, Nick Desaulniers wrote: >> The header declares this function as __init but is defined in __ref >> section. >> >> Signed-off-by: Nick Desaulniers > AFAIK section attributes in header files are ignored by compiler anyway > so I'd remove all of them. Hmm, I'm not sure all future compilers will ignore the section attributes. include/linux/init.h explictily mentions where to put the attrubute in a prototype, so I'd rather keep it. >>> Attributes in the declaration are for static analysis tools such as sparse. >>> >>> How else are you going to work out whether a section mismatch has occurred? >> Isn't this done based on definitions? >> >> Tons of __init routines don't have the attribute specified in header >> files. In fact, even in this file (arch/x86/xen/xen-ops.h) there are >> some that don't have it. >> >> -boris > What are the next steps for getting this patch merged? This is the > only function for which I get a compiler warning (with Clang). Do you > require a patch instead that changes more function attributes, or can > that be a follow up patch? Applied to for-linus-4.15. -boris
Re: [Xen-devel] [PATCH] x86/xen/time: fix section mismatch for xen_init_time_ops()
On Tue, Jan 2, 2018 at 7:00 AM, Boris Ostrovsky wrote: > On 01/02/2018 09:32 AM, Andrew Cooper wrote: >> On 02/01/18 14:24, Juergen Gross wrote: >>> On 02/01/18 15:18, Boris Ostrovsky wrote: On 12/23/2017 09:50 PM, Nick Desaulniers wrote: > The header declares this function as __init but is defined in __ref > section. > > Signed-off-by: Nick Desaulniers AFAIK section attributes in header files are ignored by compiler anyway so I'd remove all of them. >>> Hmm, I'm not sure all future compilers will ignore the section >>> attributes. include/linux/init.h explictily mentions where to put >>> the attrubute in a prototype, so I'd rather keep it. >> Attributes in the declaration are for static analysis tools such as sparse. >> >> How else are you going to work out whether a section mismatch has occurred? > > Isn't this done based on definitions? > > Tons of __init routines don't have the attribute specified in header > files. In fact, even in this file (arch/x86/xen/xen-ops.h) there are > some that don't have it. > > -boris What are the next steps for getting this patch merged? This is the only function for which I get a compiler warning (with Clang). Do you require a patch instead that changes more function attributes, or can that be a follow up patch?
Re: [Xen-devel] [PATCH] x86/xen/time: fix section mismatch for xen_init_time_ops()
On 01/02/2018 09:32 AM, Andrew Cooper wrote: > On 02/01/18 14:24, Juergen Gross wrote: >> On 02/01/18 15:18, Boris Ostrovsky wrote: >>> On 12/23/2017 09:50 PM, Nick Desaulniers wrote: The header declares this function as __init but is defined in __ref section. Signed-off-by: Nick Desaulniers >>> AFAIK section attributes in header files are ignored by compiler anyway >>> so I'd remove all of them. >> Hmm, I'm not sure all future compilers will ignore the section >> attributes. include/linux/init.h explictily mentions where to put >> the attrubute in a prototype, so I'd rather keep it. > Attributes in the declaration are for static analysis tools such as sparse. > > How else are you going to work out whether a section mismatch has occurred? Isn't this done based on definitions? Tons of __init routines don't have the attribute specified in header files. In fact, even in this file (arch/x86/xen/xen-ops.h) there are some that don't have it. -boris
Re: [Xen-devel] [PATCH] x86/xen/time: fix section mismatch for xen_init_time_ops()
On 02/01/18 14:24, Juergen Gross wrote: > On 02/01/18 15:18, Boris Ostrovsky wrote: >> On 12/23/2017 09:50 PM, Nick Desaulniers wrote: >>> The header declares this function as __init but is defined in __ref >>> section. >>> >>> Signed-off-by: Nick Desaulniers >> AFAIK section attributes in header files are ignored by compiler anyway >> so I'd remove all of them. > Hmm, I'm not sure all future compilers will ignore the section > attributes. include/linux/init.h explictily mentions where to put > the attrubute in a prototype, so I'd rather keep it. Attributes in the declaration are for static analysis tools such as sparse. How else are you going to work out whether a section mismatch has occurred? ~Andrew