提交 dab5025c 编写于 作者: L Linus Torvalds

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.
...@@ -19,6 +19,7 @@ ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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 { ...@@ -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>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册