View | Details | Raw Unified | Return to bug 87244
Collapse All | Expand All

(-)arch/ia64/kernel/ptrace.c (-5 / +10 lines)
Lines 945-950 Link Here
945
				*data = (pt->cr_ipsr & IPSR_MASK);
945
				*data = (pt->cr_ipsr & IPSR_MASK);
946
			return 0;
946
			return 0;
947
947
948
		      case PT_AR_RSC:
949
			if (write_access)
950
				pt->ar_rsc = *data | (3 << 2); /* force PL3 */
951
			else
952
				*data = pt->ar_rsc;
953
			return 0;
954
948
		      case PT_AR_RNAT:
955
		      case PT_AR_RNAT:
949
			urbs_end = ia64_get_user_rbs_end(child, pt, NULL);
956
			urbs_end = ia64_get_user_rbs_end(child, pt, NULL);
950
			rnat_addr = (long) ia64_rse_rnat_addr((long *)
957
			rnat_addr = (long) ia64_rse_rnat_addr((long *)
Lines 996-1004 Link Here
996
		      case PT_AR_BSPSTORE:
1003
		      case PT_AR_BSPSTORE:
997
			ptr = pt_reg_addr(pt, ar_bspstore);
1004
			ptr = pt_reg_addr(pt, ar_bspstore);
998
			break;
1005
			break;
999
		      case PT_AR_RSC:
1000
			ptr = pt_reg_addr(pt, ar_rsc);
1001
			break;
1002
		      case PT_AR_UNAT:
1006
		      case PT_AR_UNAT:
1003
			ptr = pt_reg_addr(pt, ar_unat);
1007
			ptr = pt_reg_addr(pt, ar_unat);
1004
			break;
1008
			break;
Lines 1234-1240 Link Here
1234
static long
1238
static long
1235
ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr)
1239
ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr)
1236
{
1240
{
1237
	unsigned long psr, ec, lc, rnat, bsp, cfm, nat_bits, val = 0;
1241
	unsigned long psr, rsc, ec, lc, rnat, bsp, cfm, nat_bits, val = 0;
1238
	struct unw_frame_info info;
1242
	struct unw_frame_info info;
1239
	struct switch_stack *sw;
1243
	struct switch_stack *sw;
1240
	struct ia64_fpreg fpval;
1244
	struct ia64_fpreg fpval;
Lines 1267-1273 Link Here
1267
	/* app regs */
1271
	/* app regs */
1268
1272
1269
	retval |= __get_user(pt->ar_pfs, &ppr->ar[PT_AUR_PFS]);
1273
	retval |= __get_user(pt->ar_pfs, &ppr->ar[PT_AUR_PFS]);
1270
	retval |= __get_user(pt->ar_rsc, &ppr->ar[PT_AUR_RSC]);
1274
	retval |= __get_user(rsc, &ppr->ar[PT_AUR_RSC]);
1271
	retval |= __get_user(pt->ar_bspstore, &ppr->ar[PT_AUR_BSPSTORE]);
1275
	retval |= __get_user(pt->ar_bspstore, &ppr->ar[PT_AUR_BSPSTORE]);
1272
	retval |= __get_user(pt->ar_unat, &ppr->ar[PT_AUR_UNAT]);
1276
	retval |= __get_user(pt->ar_unat, &ppr->ar[PT_AUR_UNAT]);
1273
	retval |= __get_user(pt->ar_ccv, &ppr->ar[PT_AUR_CCV]);
1277
	retval |= __get_user(pt->ar_ccv, &ppr->ar[PT_AUR_CCV]);
Lines 1365-1370 Link Here
1365
	retval |= __get_user(nat_bits, &ppr->nat);
1369
	retval |= __get_user(nat_bits, &ppr->nat);
1366
1370
1367
	retval |= access_uarea(child, PT_CR_IPSR, &psr, 1);
1371
	retval |= access_uarea(child, PT_CR_IPSR, &psr, 1);
1372
	retval |= access_uarea(child, PT_AR_RSC, &rsc, 1);
1368
	retval |= access_uarea(child, PT_AR_EC, &ec, 1);
1373
	retval |= access_uarea(child, PT_AR_EC, &ec, 1);
1369
	retval |= access_uarea(child, PT_AR_LC, &lc, 1);
1374
	retval |= access_uarea(child, PT_AR_LC, &lc, 1);
1370
	retval |= access_uarea(child, PT_AR_RNAT, &rnat, 1);
1375
	retval |= access_uarea(child, PT_AR_RNAT, &rnat, 1);

Return to bug 87244