Merge branch 'hwpoison-fixes-2.6.37' into hwpoison

This commit is contained in:
Andi Kleen 2010-10-22 17:40:07 +02:00
commit df27570f43
3 changed files with 13 additions and 1 deletions

View file

@ -62,6 +62,7 @@ typedef struct siginfo {
int _imm; /* immediate value for "break" */ int _imm; /* immediate value for "break" */
unsigned int _flags; /* see below */ unsigned int _flags; /* see below */
unsigned long _isr; /* isr */ unsigned long _isr; /* isr */
short _addr_lsb; /* lsb of faulting address */
} _sigfault; } _sigfault;
/* SIGPOLL */ /* SIGPOLL */

View file

@ -98,6 +98,16 @@ static int signalfd_copyinfo(struct signalfd_siginfo __user *uinfo,
err |= __put_user((long) kinfo->si_addr, &uinfo->ssi_addr); err |= __put_user((long) kinfo->si_addr, &uinfo->ssi_addr);
#ifdef __ARCH_SI_TRAPNO #ifdef __ARCH_SI_TRAPNO
err |= __put_user(kinfo->si_trapno, &uinfo->ssi_trapno); err |= __put_user(kinfo->si_trapno, &uinfo->ssi_trapno);
#endif
#ifdef BUS_MCEERR_AO
/*
* Other callers might not initialize the si_lsb field,
* so check explicitly for the right codes here.
*/
if (kinfo->si_code == BUS_MCEERR_AR ||
kinfo->si_code == BUS_MCEERR_AO)
err |= __put_user((short) kinfo->si_addr_lsb,
&uinfo->ssi_addr_lsb);
#endif #endif
break; break;
case __SI_CHLD: case __SI_CHLD:

View file

@ -33,6 +33,7 @@ struct signalfd_siginfo {
__u64 ssi_utime; __u64 ssi_utime;
__u64 ssi_stime; __u64 ssi_stime;
__u64 ssi_addr; __u64 ssi_addr;
__u16 ssi_addr_lsb;
/* /*
* Pad strcture to 128 bytes. Remember to update the * Pad strcture to 128 bytes. Remember to update the
@ -43,7 +44,7 @@ struct signalfd_siginfo {
* comes out of a read(2) and we really don't want to have * comes out of a read(2) and we really don't want to have
* a compat on read(2). * a compat on read(2).
*/ */
__u8 __pad[48]; __u8 __pad[46];
}; };