lkml.org 
[lkml]   [2023]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 3/3] x86/apic: Drop struct local_apic
    On Thu, Nov 02, 2023 at 12:26:21PM +0000, Andrew Cooper wrote:
    > This type predates recorded history in tglx/history.git, making it older
    > than Feb 5th 2002.
    >
    > This structure is literally old enough to drink in most juristictions in
    > the world, and has not been used once in that time.
    >
    > Lay it to rest in /dev/null.
    >
    > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    > ---
    > There is perhaps something to be said for the longevity of the comment.
    > "Not terribly well tested" certainly hasn't bitrotted in all this time.

    :-) !!!

    Reveiewed-by: Steve Wahl <steve.wahl@hpe.com>


    > ---
    > arch/x86/include/asm/apicdef.h | 260 -----------------------------------------
    > 1 file changed, 260 deletions(-)
    >
    > diff --git a/arch/x86/include/asm/apicdef.h b/arch/x86/include/asm/apicdef.h
    > index ddcbf00db19d..094106b6a538 100644
    > --- a/arch/x86/include/asm/apicdef.h
    > +++ b/arch/x86/include/asm/apicdef.h
    > @@ -172,270 +172,10 @@
    > #define APIC_CPUID(apicid) ((apicid) & XAPIC_DEST_CPUS_MASK)
    > #define NUM_APIC_CLUSTERS ((BAD_APICID + 1) >> XAPIC_DEST_CPUS_SHIFT)
    >
    > -#ifndef __ASSEMBLY__
    > -/*
    > - * the local APIC register structure, memory mapped. Not terribly well
    > - * tested, but we might eventually use this one in the future - the
    > - * problem why we cannot use it right now is the P5 APIC, it has an
    > - * errata which cannot take 8-bit reads and writes, only 32-bit ones ...
    > - */
    > -#define u32 unsigned int
    > -
    > -struct local_apic {
    > -
    > -/*000*/ struct { u32 __reserved[4]; } __reserved_01;
    > -
    > -/*010*/ struct { u32 __reserved[4]; } __reserved_02;
    > -
    > -/*020*/ struct { /* APIC ID Register */
    > - u32 __reserved_1 : 24,
    > - phys_apic_id : 4,
    > - __reserved_2 : 4;
    > - u32 __reserved[3];
    > - } id;
    > -
    > -/*030*/ const
    > - struct { /* APIC Version Register */
    > - u32 version : 8,
    > - __reserved_1 : 8,
    > - max_lvt : 8,
    > - __reserved_2 : 8;
    > - u32 __reserved[3];
    > - } version;
    > -
    > -/*040*/ struct { u32 __reserved[4]; } __reserved_03;
    > -
    > -/*050*/ struct { u32 __reserved[4]; } __reserved_04;
    > -
    > -/*060*/ struct { u32 __reserved[4]; } __reserved_05;
    > -
    > -/*070*/ struct { u32 __reserved[4]; } __reserved_06;
    > -
    > -/*080*/ struct { /* Task Priority Register */
    > - u32 priority : 8,
    > - __reserved_1 : 24;
    > - u32 __reserved_2[3];
    > - } tpr;
    > -
    > -/*090*/ const
    > - struct { /* Arbitration Priority Register */
    > - u32 priority : 8,
    > - __reserved_1 : 24;
    > - u32 __reserved_2[3];
    > - } apr;
    > -
    > -/*0A0*/ const
    > - struct { /* Processor Priority Register */
    > - u32 priority : 8,
    > - __reserved_1 : 24;
    > - u32 __reserved_2[3];
    > - } ppr;
    > -
    > -/*0B0*/ struct { /* End Of Interrupt Register */
    > - u32 eoi;
    > - u32 __reserved[3];
    > - } eoi;
    > -
    > -/*0C0*/ struct { u32 __reserved[4]; } __reserved_07;
    > -
    > -/*0D0*/ struct { /* Logical Destination Register */
    > - u32 __reserved_1 : 24,
    > - logical_dest : 8;
    > - u32 __reserved_2[3];
    > - } ldr;
    > -
    > -/*0E0*/ struct { /* Destination Format Register */
    > - u32 __reserved_1 : 28,
    > - model : 4;
    > - u32 __reserved_2[3];
    > - } dfr;
    > -
    > -/*0F0*/ struct { /* Spurious Interrupt Vector Register */
    > - u32 spurious_vector : 8,
    > - apic_enabled : 1,
    > - focus_cpu : 1,
    > - __reserved_2 : 22;
    > - u32 __reserved_3[3];
    > - } svr;
    > -
    > -/*100*/ struct { /* In Service Register */
    > -/*170*/ u32 bitfield;
    > - u32 __reserved[3];
    > - } isr [8];
    > -
    > -/*180*/ struct { /* Trigger Mode Register */
    > -/*1F0*/ u32 bitfield;
    > - u32 __reserved[3];
    > - } tmr [8];
    > -
    > -/*200*/ struct { /* Interrupt Request Register */
    > -/*270*/ u32 bitfield;
    > - u32 __reserved[3];
    > - } irr [8];
    > -
    > -/*280*/ union { /* Error Status Register */
    > - struct {
    > - u32 send_cs_error : 1,
    > - receive_cs_error : 1,
    > - send_accept_error : 1,
    > - receive_accept_error : 1,
    > - __reserved_1 : 1,
    > - send_illegal_vector : 1,
    > - receive_illegal_vector : 1,
    > - illegal_register_address : 1,
    > - __reserved_2 : 24;
    > - u32 __reserved_3[3];
    > - } error_bits;
    > - struct {
    > - u32 errors;
    > - u32 __reserved_3[3];
    > - } all_errors;
    > - } esr;
    > -
    > -/*290*/ struct { u32 __reserved[4]; } __reserved_08;
    > -
    > -/*2A0*/ struct { u32 __reserved[4]; } __reserved_09;
    > -
    > -/*2B0*/ struct { u32 __reserved[4]; } __reserved_10;
    > -
    > -/*2C0*/ struct { u32 __reserved[4]; } __reserved_11;
    > -
    > -/*2D0*/ struct { u32 __reserved[4]; } __reserved_12;
    > -
    > -/*2E0*/ struct { u32 __reserved[4]; } __reserved_13;
    > -
    > -/*2F0*/ struct { u32 __reserved[4]; } __reserved_14;
    > -
    > -/*300*/ struct { /* Interrupt Command Register 1 */
    > - u32 vector : 8,
    > - delivery_mode : 3,
    > - destination_mode : 1,
    > - delivery_status : 1,
    > - __reserved_1 : 1,
    > - level : 1,
    > - trigger : 1,
    > - __reserved_2 : 2,
    > - shorthand : 2,
    > - __reserved_3 : 12;
    > - u32 __reserved_4[3];
    > - } icr1;
    > -
    > -/*310*/ struct { /* Interrupt Command Register 2 */
    > - union {
    > - u32 __reserved_1 : 24,
    > - phys_dest : 4,
    > - __reserved_2 : 4;
    > - u32 __reserved_3 : 24,
    > - logical_dest : 8;
    > - } dest;
    > - u32 __reserved_4[3];
    > - } icr2;
    > -
    > -/*320*/ struct { /* LVT - Timer */
    > - u32 vector : 8,
    > - __reserved_1 : 4,
    > - delivery_status : 1,
    > - __reserved_2 : 3,
    > - mask : 1,
    > - timer_mode : 1,
    > - __reserved_3 : 14;
    > - u32 __reserved_4[3];
    > - } lvt_timer;
    > -
    > -/*330*/ struct { /* LVT - Thermal Sensor */
    > - u32 vector : 8,
    > - delivery_mode : 3,
    > - __reserved_1 : 1,
    > - delivery_status : 1,
    > - __reserved_2 : 3,
    > - mask : 1,
    > - __reserved_3 : 15;
    > - u32 __reserved_4[3];
    > - } lvt_thermal;
    > -
    > -/*340*/ struct { /* LVT - Performance Counter */
    > - u32 vector : 8,
    > - delivery_mode : 3,
    > - __reserved_1 : 1,
    > - delivery_status : 1,
    > - __reserved_2 : 3,
    > - mask : 1,
    > - __reserved_3 : 15;
    > - u32 __reserved_4[3];
    > - } lvt_pc;
    > -
    > -/*350*/ struct { /* LVT - LINT0 */
    > - u32 vector : 8,
    > - delivery_mode : 3,
    > - __reserved_1 : 1,
    > - delivery_status : 1,
    > - polarity : 1,
    > - remote_irr : 1,
    > - trigger : 1,
    > - mask : 1,
    > - __reserved_2 : 15;
    > - u32 __reserved_3[3];
    > - } lvt_lint0;
    > -
    > -/*360*/ struct { /* LVT - LINT1 */
    > - u32 vector : 8,
    > - delivery_mode : 3,
    > - __reserved_1 : 1,
    > - delivery_status : 1,
    > - polarity : 1,
    > - remote_irr : 1,
    > - trigger : 1,
    > - mask : 1,
    > - __reserved_2 : 15;
    > - u32 __reserved_3[3];
    > - } lvt_lint1;
    > -
    > -/*370*/ struct { /* LVT - Error */
    > - u32 vector : 8,
    > - __reserved_1 : 4,
    > - delivery_status : 1,
    > - __reserved_2 : 3,
    > - mask : 1,
    > - __reserved_3 : 15;
    > - u32 __reserved_4[3];
    > - } lvt_error;
    > -
    > -/*380*/ struct { /* Timer Initial Count Register */
    > - u32 initial_count;
    > - u32 __reserved_2[3];
    > - } timer_icr;
    > -
    > -/*390*/ const
    > - struct { /* Timer Current Count Register */
    > - u32 curr_count;
    > - u32 __reserved_2[3];
    > - } timer_ccr;
    > -
    > -/*3A0*/ struct { u32 __reserved[4]; } __reserved_16;
    > -
    > -/*3B0*/ struct { u32 __reserved[4]; } __reserved_17;
    > -
    > -/*3C0*/ struct { u32 __reserved[4]; } __reserved_18;
    > -
    > -/*3D0*/ struct { u32 __reserved[4]; } __reserved_19;
    > -
    > -/*3E0*/ struct { /* Timer Divide Configuration Register */
    > - u32 divisor : 4,
    > - __reserved_1 : 28;
    > - u32 __reserved_2[3];
    > - } timer_dcr;
    > -
    > -/*3F0*/ struct { u32 __reserved[4]; } __reserved_20;
    > -
    > -} __attribute__ ((packed));
    > -
    > -#undef u32
    > -
    > #ifdef CONFIG_X86_32
    > #define BAD_APICID 0xFFu
    > #else
    > #define BAD_APICID 0xFFFFu
    > #endif
    >
    > -#endif /* !__ASSEMBLY__ */
    > #endif /* _ASM_X86_APICDEF_H */
    >
    > --
    > 2.30.2
    >

    --
    Steve Wahl, Hewlett Packard Enterprise

    \
     
     \ /
      Last update: 2023-11-20 13:48    [W:6.548 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site