• Maximilian Luz's avatar
    platform/surface: aggregator: Make SSAM_DEFINE_SYNC_REQUEST_x define static functions · 03ee3183
    Maximilian Luz authored
    The SSAM_DEFINE_SYNC_REQUEST_x() macros are intended to reduce
    boiler-plate code for SSAM request definitions by defining a wrapper
    function for the specified request. The client device variants of those
    macros, i.e. SSAM_DEFINE_SYNC_REQUEST_CL_x() in particular rely on the
    multi-device (MD) variants, e.g.:
    
        #define SSAM_DEFINE_SYNC_REQUEST_CL_R(name, rtype, spec...)   \
            SSAM_DEFINE_SYNC_REQUEST_MD_R(__raw_##name, rtype, spec)  \
            int name(struct ssam_device *sdev, rtype *ret)            \
            {                                                         \
                return __raw_##name(sdev->ctrl, sdev->uid.target,     \
                                    sdev->uid.instance, ret);         \
            }
    
    This now creates the problem that it is not possible to declare the
    generated functions static via
    
        static SSAM_DEFINE_SYNC_REQUEST_CL_R(...)
    
    as this will only apply to the function defined by the multi-device
    macro, i.e. SSAM_DEFINE_SYNC_REQUEST_MD_R(). Thus compiling with
    `-Wmissing-prototypes' rightfully complains that there is a 'static'
    keyword missing.
    
    To solve this, make all SSAM_DEFINE_SYNC_REQUEST_x() macros define
    static functions. Non-client-device macros are also changed for
    consistency. In general, we expect those functions to be only used
    locally in the respective drivers for the corresponding interfaces, so
    having to define a wrapper function to be able to export this should be
    the odd case out.
    Reported-by: default avatarkernel test robot <lkp@intel.com>
    Fixes: b78b4982 ("platform/surface: Add platform profile driver")
    Signed-off-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
    Link: https://lore.kernel.org/r/20210304190524.1172197-1-luzmaximilian@gmail.comSigned-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    03ee3183
surface_aggregator_registry.c 15.7 KB