diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-08-24 12:25:44 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-08-24 12:25:54 +0200 | 
| commit | 5f9ece02401116b29eb04396b99ea092acb75dd8 (patch) | |
| tree | e10386e2dc63c275646b4eb0bed857da7bf86c6a /arch/parisc/kernel/inventory.c | |
| parent | 9f51e24ee8b5a1595b6a5ac0c2be278a16488e75 (diff) | |
| parent | 422bef879e84104fee6dc68ded0e371dbeb5f88e (diff) | |
| download | olio-linux-3.10-5f9ece02401116b29eb04396b99ea092acb75dd8.tar.xz olio-linux-3.10-5f9ece02401116b29eb04396b99ea092acb75dd8.zip  | |
Merge commit 'v2.6.31-rc7' into x86/cleanups
Merge reason: we were on -rc1 before - go up to -rc7
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/parisc/kernel/inventory.c')
| -rw-r--r-- | arch/parisc/kernel/inventory.c | 41 | 
1 files changed, 24 insertions, 17 deletions
diff --git a/arch/parisc/kernel/inventory.c b/arch/parisc/kernel/inventory.c index bd1f7f1ff74..d228d823787 100644 --- a/arch/parisc/kernel/inventory.c +++ b/arch/parisc/kernel/inventory.c @@ -170,23 +170,27 @@ static void __init pagezero_memconfig(void)  static int __init   pat_query_module(ulong pcell_loc, ulong mod_index)  { -	pdc_pat_cell_mod_maddr_block_t pa_pdc_cell; +	pdc_pat_cell_mod_maddr_block_t *pa_pdc_cell;  	unsigned long bytecnt;  	unsigned long temp;	/* 64-bit scratch value */  	long status;		/* PDC return value status */  	struct parisc_device *dev; +	pa_pdc_cell = kmalloc(sizeof (*pa_pdc_cell), GFP_KERNEL); +	if (!pa_pdc_cell) +		panic("couldn't allocate memory for PDC_PAT_CELL!"); +  	/* return cell module (PA or Processor view) */  	status = pdc_pat_cell_module(&bytecnt, pcell_loc, mod_index, -				     PA_VIEW, &pa_pdc_cell); +				     PA_VIEW, pa_pdc_cell);  	if (status != PDC_OK) {  		/* no more cell modules or error */  		return status;  	} -	temp = pa_pdc_cell.cba; -	dev = alloc_pa_dev(PAT_GET_CBA(temp), &pa_pdc_cell.mod_path); +	temp = pa_pdc_cell->cba; +	dev = alloc_pa_dev(PAT_GET_CBA(temp), &(pa_pdc_cell->mod_path));  	if (!dev) {  		return PDC_OK;  	} @@ -203,8 +207,8 @@ pat_query_module(ulong pcell_loc, ulong mod_index)  	/* save generic info returned from the call */  	/* REVISIT: who is the consumer of this? not sure yet... */ -	dev->mod_info = pa_pdc_cell.mod_info;	/* pass to PAT_GET_ENTITY() */ -	dev->pmod_loc = pa_pdc_cell.mod_location; +	dev->mod_info = pa_pdc_cell->mod_info;	/* pass to PAT_GET_ENTITY() */ +	dev->pmod_loc = pa_pdc_cell->mod_location;  	register_parisc_device(dev);	/* advertise device */ @@ -216,14 +220,14 @@ pat_query_module(ulong pcell_loc, ulong mod_index)  	case PAT_ENTITY_PROC:  		printk(KERN_DEBUG "PAT_ENTITY_PROC: id_eid 0x%lx\n", -			pa_pdc_cell.mod[0]); +			pa_pdc_cell->mod[0]);  		break;  	case PAT_ENTITY_MEM:  		printk(KERN_DEBUG   			"PAT_ENTITY_MEM: amount 0x%lx min_gni_base 0x%lx min_gni_len 0x%lx\n", -			pa_pdc_cell.mod[0], pa_pdc_cell.mod[1],  -			pa_pdc_cell.mod[2]); +			pa_pdc_cell->mod[0], pa_pdc_cell->mod[1], +			pa_pdc_cell->mod[2]);  		break;  	case PAT_ENTITY_CA:  		printk(KERN_DEBUG "PAT_ENTITY_CA: %ld\n", pcell_loc); @@ -243,23 +247,26 @@ pat_query_module(ulong pcell_loc, ulong mod_index)   print_ranges:  		pdc_pat_cell_module(&bytecnt, pcell_loc, mod_index,  				    IO_VIEW, &io_pdc_cell); -		printk(KERN_DEBUG "ranges %ld\n", pa_pdc_cell.mod[1]); -		for (i = 0; i < pa_pdc_cell.mod[1]; i++) { +		printk(KERN_DEBUG "ranges %ld\n", pa_pdc_cell->mod[1]); +		for (i = 0; i < pa_pdc_cell->mod[1]; i++) {  			printk(KERN_DEBUG   				"  PA_VIEW %ld: 0x%016lx 0x%016lx 0x%016lx\n",  -				i, pa_pdc_cell.mod[2 + i * 3],	/* type */ -				pa_pdc_cell.mod[3 + i * 3],	/* start */ -				pa_pdc_cell.mod[4 + i * 3]);	/* finish (ie end) */ +				i, pa_pdc_cell->mod[2 + i * 3],	/* type */ +				pa_pdc_cell->mod[3 + i * 3],	/* start */ +				pa_pdc_cell->mod[4 + i * 3]);	/* finish (ie end) */  			printk(KERN_DEBUG   				"  IO_VIEW %ld: 0x%016lx 0x%016lx 0x%016lx\n",  -				i, io_pdc_cell.mod[2 + i * 3],	/* type */ -				io_pdc_cell.mod[3 + i * 3],	/* start */ -				io_pdc_cell.mod[4 + i * 3]);	/* finish (ie end) */ +				i, io_pdc_cell->mod[2 + i * 3],	/* type */ +				io_pdc_cell->mod[3 + i * 3],	/* start */ +				io_pdc_cell->mod[4 + i * 3]);	/* finish (ie end) */  		}  		printk(KERN_DEBUG "\n");  		break;  	}  #endif /* DEBUG_PAT */ + +	kfree(pa_pdc_cell); +  	return PDC_OK;  }  |