• C
    x86: apic: Do not use stacked physid_mask_t · 7abc0753
    Cyrill Gorcunov 提交于
    We should not use physid_mask_t as a stack based
    variable in apic code. This type depends on MAX_APICS
    parameter which may be huge enough.
    
    Especially it became a problem with apic NOOP driver which
    is portable between 32 bit and 64 bit environment
    (where we have really huge MAX_APICS).
    
    So apic driver should operate with pointers and a caller
    in turn should aware of allocation physid_mask_t variable.
    
    As a side (but positive) effect -- we may use already
    implemented physid_set_mask_of_physid function eliminating
    default_apicid_to_cpu_present completely.
    
    Note that physids_coerce and physids_promote turned into static
    inline from macro (since macro hides the fact that parameter is
    being interpreted as unsigned long, make it explicit).
    Signed-off-by: NCyrill Gorcunov <gorcunov@openvz.org>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Maciej W. Rozycki <macro@linux-mips.org>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    LKML-Reference: <20091109220659.GA5568@lenovo>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    7abc0753
apic.h 13.6 KB