Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 177215
b: refs/heads/master
c: 9ee27c7
h: refs/heads/master
i:
  177213: ac63697
  177211: 6d6964a
  177207: 79a8cb6
  177199: 5044ee8
  177183: ff6269f
  177151: 4efd7d3
v: v3
  • Loading branch information
Takao Indoh authored and Tony Luck committed Dec 15, 2009
1 parent 577f081 commit 6758d50
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 09b366b78c9602f53344c269eac608fd6e24d670
refs/heads/master: 9ee27c76393394c7fb1ddeca3f1622d4537185a0
5 changes: 5 additions & 0 deletions trunk/arch/ia64/include/asm/mca.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@ struct ia64_sal_os_state {
unsigned long os_status; /* OS status to SAL, enum below */
unsigned long context; /* 0 if return to same context
1 if return to new context */

/* I-resources */
unsigned long iip;
unsigned long ipsr;
unsigned long ifs;
};

enum {
Expand Down
11 changes: 8 additions & 3 deletions trunk/arch/ia64/kernel/mca.c
Original file line number Diff line number Diff line change
Expand Up @@ -888,9 +888,10 @@ ia64_mca_modify_comm(const struct task_struct *previous_current)
}

static void
finish_pt_regs(struct pt_regs *regs, const pal_min_state_area_t *ms,
finish_pt_regs(struct pt_regs *regs, struct ia64_sal_os_state *sos,
unsigned long *nat)
{
const pal_min_state_area_t *ms = sos->pal_min_state;
const u64 *bank;

/* If ipsr.ic then use pmsa_{iip,ipsr,ifs}, else use
Expand All @@ -904,6 +905,10 @@ finish_pt_regs(struct pt_regs *regs, const pal_min_state_area_t *ms,
regs->cr_iip = ms->pmsa_xip;
regs->cr_ipsr = ms->pmsa_xpsr;
regs->cr_ifs = ms->pmsa_xfs;

sos->iip = ms->pmsa_iip;
sos->ipsr = ms->pmsa_ipsr;
sos->ifs = ms->pmsa_ifs;
}
regs->pr = ms->pmsa_pr;
regs->b0 = ms->pmsa_br0;
Expand Down Expand Up @@ -1079,7 +1084,7 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
memcpy(old_regs, regs, sizeof(*regs));
old_regs->loadrs = loadrs;
old_unat = old_regs->ar_unat;
finish_pt_regs(old_regs, ms, &old_unat);
finish_pt_regs(old_regs, sos, &old_unat);

/* Next stack a struct switch_stack. mca_asm.S built a partial
* switch_stack, copy it and fill in the blanks using pt_regs and
Expand Down Expand Up @@ -1150,7 +1155,7 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
mprintk(KERN_INFO "cpu %d, %s %s, original stack not modified\n",
smp_processor_id(), type, msg);
old_unat = regs->ar_unat;
finish_pt_regs(regs, ms, &old_unat);
finish_pt_regs(regs, sos, &old_unat);
return previous_current;
}

Expand Down

0 comments on commit 6758d50

Please sign in to comment.