x86, UV: remove erroneous BAU initialization

Impact: fix crash on x86/UV

UV is the SGI "UltraViolet" machine, which is x86_64 based.
BAU is the "Broadcast Assist Unit", used for TLB shootdown in UV.

This patch removes the allocation and initialization of an unused table.

This table is left over from a development test mode. It is unused in
the present code.

And it was incorrectly initialized: 8 entries allocated but 17 initialized,
causing slab corruption.

This patch should go into 2.6.27 and 2.6.28 as well as the current tree.

Diffed against 2.6.28 (linux-next, 12/30/08)

Signed-off-by: Cliff Wickman <cpw@sgi.com>
Cc: <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

authored by

Cliff Wickman and committed by
Ingo Molnar
46814dde 26799a63

-9
-9
arch/x86/kernel/tlb_uv.c
··· 582 static struct bau_control * __init uv_table_bases_init(int blade, int node) 583 { 584 int i; 585 - int *ip; 586 struct bau_msg_status *msp; 587 struct bau_control *bau_tabp; 588 ··· 597 for (i = 0, msp = bau_tabp->msg_statuses; i < DEST_Q_SIZE; i++, msp++) 598 bau_cpubits_clear(&msp->seen_by, (int) 599 uv_blade_nr_possible_cpus(blade)); 600 - 601 - bau_tabp->watching = 602 - kmalloc_node(sizeof(int) * DEST_NUM_RESOURCES, GFP_KERNEL, node); 603 - BUG_ON(!bau_tabp->watching); 604 - 605 - for (i = 0, ip = bau_tabp->watching; i < DEST_Q_SIZE; i++, ip++) 606 - *ip = 0; 607 608 uv_bau_table_bases[blade] = bau_tabp; 609 ··· 620 bcp->bau_msg_head = bau_tablesp->va_queue_first; 621 bcp->va_queue_first = bau_tablesp->va_queue_first; 622 bcp->va_queue_last = bau_tablesp->va_queue_last; 623 - bcp->watching = bau_tablesp->watching; 624 bcp->msg_statuses = bau_tablesp->msg_statuses; 625 bcp->descriptor_base = adp; 626 }
··· 582 static struct bau_control * __init uv_table_bases_init(int blade, int node) 583 { 584 int i; 585 struct bau_msg_status *msp; 586 struct bau_control *bau_tabp; 587 ··· 598 for (i = 0, msp = bau_tabp->msg_statuses; i < DEST_Q_SIZE; i++, msp++) 599 bau_cpubits_clear(&msp->seen_by, (int) 600 uv_blade_nr_possible_cpus(blade)); 601 602 uv_bau_table_bases[blade] = bau_tabp; 603 ··· 628 bcp->bau_msg_head = bau_tablesp->va_queue_first; 629 bcp->va_queue_first = bau_tablesp->va_queue_first; 630 bcp->va_queue_last = bau_tablesp->va_queue_last; 631 bcp->msg_statuses = bau_tablesp->msg_statuses; 632 bcp->descriptor_base = adp; 633 }