.lock = SPIN_LOCK_UNLOCKED
};
+EXPORT_SYMBOL_GPL(rtas);
+
char rtas_err_buf[RTAS_ERROR_LOG_MAX];
extern unsigned long reloc_offset(void);
void
call_rtas_display_status(char c)
{
- struct rtas_args *args = &(get_paca()->xRtas);
+ struct rtas_args *args;
unsigned long s;
spin_lock_irqsave(&rtas.lock, s);
+ args = &(get_paca()->xRtas);
args->token = 10;
args->nargs = 1;
args->rets = (rtas_arg_t *)&(args->args[1]);
args->args[0] = (int)c;
- enter_rtas((void *)__pa((unsigned long)args));
+ enter_rtas(__pa(args));
spin_unlock_irqrestore(&rtas.lock, s);
}
get_paca()->xRtas = err_args;
PPCDBG(PPCDBG_RTAS, "\tentering rtas with 0x%lx\n",
- (void *)__pa((unsigned long)&err_args));
- enter_rtas((void *)__pa((unsigned long)&get_paca()->xRtas));
- PPCDBG(PPCDBG_RTAS, "\treturned from rtas ...\n");
+ __pa(&err_args));
+ enter_rtas(__pa(&get_paca()->xRtas));
+ PPCDBG(PPCDBG_RTAS, "\treturned from rtas ...\n");
err_args = get_paca()->xRtas;
get_paca()->xRtas = temp_args;
va_list list;
int i, logit = 0;
unsigned long s;
- struct rtas_args *rtas_args = &(get_paca()->xRtas);
+ struct rtas_args *rtas_args;
long ret;
PPCDBG(PPCDBG_RTAS, "Entering rtas_call\n");
/* Gotta do something different here, use global lock for now... */
spin_lock_irqsave(&rtas.lock, s);
+ rtas_args = &(get_paca()->xRtas);
rtas_args->token = token;
rtas_args->nargs = nargs;
rtas_args->rets[i] = 0;
PPCDBG(PPCDBG_RTAS, "\tentering rtas with 0x%lx\n",
- (void *)__pa((unsigned long)rtas_args));
- enter_rtas((void *)__pa((unsigned long)rtas_args));
+ __pa(rtas_args));
+ enter_rtas(__pa(rtas_args));
PPCDBG(PPCDBG_RTAS, "\treturned from rtas ...\n");
if (rtas_args->rets[0] == -1)
rtas_firmware_flash_list.num_blocks = 0;
flist = (struct flash_block_list *)&rtas_firmware_flash_list;
rtas_block_list = virt_to_abs(flist);
- if (rtas_block_list >= (4UL << 20)) {
+ if (rtas_block_list >= 4UL*1024*1024*1024) {
printk(KERN_ALERT "FLASH: kernel bug...flash list header addr above 4GB\n");
return;
}
spin_lock_irqsave(&rtas.lock, flags);
get_paca()->xRtas = args;
- enter_rtas((void *)__pa((unsigned long)&get_paca()->xRtas));
+ enter_rtas(__pa(&get_paca()->xRtas));
args = get_paca()->xRtas;
spin_unlock_irqrestore(&rtas.lock, flags);
printk("%u %u Ready to die...\n",
smp_processor_id(), hard_smp_processor_id());
- enter_rtas((void *)__pa(rtas_args));
+ enter_rtas(__pa(rtas_args));
panic("Alas, I survived.\n");
}