parisc: processor.c, fix bloated stack frame

The pa_pdc_cell struct can be kmalloc'd, so do that instead.

Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>

+11 -5
+11 -5
arch/parisc/kernel/processor.c
··· 120 120 if (is_pdc_pat()) { 121 121 ulong status; 122 122 unsigned long bytecnt; 123 - pdc_pat_cell_mod_maddr_block_t pa_pdc_cell; 123 + pdc_pat_cell_mod_maddr_block_t *pa_pdc_cell; 124 124 #undef USE_PAT_CPUID 125 125 #ifdef USE_PAT_CPUID 126 126 struct pdc_pat_cpu_num cpu_info; 127 127 #endif 128 128 129 + pa_pdc_cell = kmalloc(sizeof (*pa_pdc_cell), GFP_KERNEL); 130 + if (!pa_pdc_cell) 131 + panic("couldn't allocate memory for PDC_PAT_CELL!"); 132 + 129 133 status = pdc_pat_cell_module(&bytecnt, dev->pcell_loc, 130 - dev->mod_index, PA_VIEW, &pa_pdc_cell); 134 + dev->mod_index, PA_VIEW, pa_pdc_cell); 131 135 132 136 BUG_ON(PDC_OK != status); 133 137 134 138 /* verify it's the same as what do_pat_inventory() found */ 135 - BUG_ON(dev->mod_info != pa_pdc_cell.mod_info); 136 - BUG_ON(dev->pmod_loc != pa_pdc_cell.mod_location); 139 + BUG_ON(dev->mod_info != pa_pdc_cell->mod_info); 140 + BUG_ON(dev->pmod_loc != pa_pdc_cell->mod_location); 137 141 138 - txn_addr = pa_pdc_cell.mod[0]; /* id_eid for IO sapic */ 142 + txn_addr = pa_pdc_cell->mod[0]; /* id_eid for IO sapic */ 143 + 144 + kfree(pa_pdc_cell); 139 145 140 146 #ifdef USE_PAT_CPUID 141 147 /* We need contiguous numbers for cpuid. Firmware's notion