Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [SCSI] esp: Fix build. [SPARC]: Fix SA_STATIC_ALLOC value. [SPARC64]: Explicitly print return PC when the kernel fault PC is bogus.
This commit is contained in:
commit
dab5025ca2
|
@ -19,6 +19,7 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/kprobes.h>
|
#include <linux/kprobes.h>
|
||||||
|
#include <linux/kallsyms.h>
|
||||||
|
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
|
@ -132,6 +133,8 @@ static void bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
|
||||||
|
|
||||||
printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n",
|
printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n",
|
||||||
regs->tpc);
|
regs->tpc);
|
||||||
|
printk(KERN_CRIT "OOPS: RPC [%016lx]\n", regs->u_regs[15]);
|
||||||
|
print_symbol("RPC: <%s>\n", regs->u_regs[15]);
|
||||||
printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
|
printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
|
||||||
__asm__("mov %%sp, %0" : "=r" (ksp));
|
__asm__("mov %%sp, %0" : "=r" (ksp));
|
||||||
show_stack(current, ksp);
|
show_stack(current, ksp);
|
||||||
|
|
|
@ -2754,18 +2754,15 @@ static int esp_do_data_finale(struct esp *esp)
|
||||||
*/
|
*/
|
||||||
static int esp_should_clear_sync(struct scsi_cmnd *sp)
|
static int esp_should_clear_sync(struct scsi_cmnd *sp)
|
||||||
{
|
{
|
||||||
u8 cmd1 = sp->cmnd[0];
|
u8 cmd = sp->cmnd[0];
|
||||||
u8 cmd2 = sp->data_cmnd[0];
|
|
||||||
|
|
||||||
/* These cases are for spinning up a disk and
|
/* These cases are for spinning up a disk and
|
||||||
* waiting for that spinup to complete.
|
* waiting for that spinup to complete.
|
||||||
*/
|
*/
|
||||||
if (cmd1 == START_STOP ||
|
if (cmd == START_STOP)
|
||||||
cmd2 == START_STOP)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (cmd1 == TEST_UNIT_READY ||
|
if (cmd == TEST_UNIT_READY)
|
||||||
cmd2 == TEST_UNIT_READY)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* One more special case for SCSI tape drives,
|
/* One more special case for SCSI tape drives,
|
||||||
|
@ -2773,8 +2770,7 @@ static int esp_should_clear_sync(struct scsi_cmnd *sp)
|
||||||
* completion of a rewind or tape load operation.
|
* completion of a rewind or tape load operation.
|
||||||
*/
|
*/
|
||||||
if (sp->device->type == TYPE_TAPE) {
|
if (sp->device->type == TYPE_TAPE) {
|
||||||
if (cmd1 == MODE_SENSE ||
|
if (cmd == MODE_SENSE)
|
||||||
cmd2 == MODE_SENSE)
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -168,7 +168,7 @@ struct sigstack {
|
||||||
* statically allocated data.. which is NOT GOOD.
|
* statically allocated data.. which is NOT GOOD.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define SA_STATIC_ALLOC 0x80
|
#define SA_STATIC_ALLOC 0x8000
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <asm-generic/signal.h>
|
#include <asm-generic/signal.h>
|
||||||
|
|
Loading…
Reference in New Issue