Merge branch 'master'
This commit is contained in:
commit
c5014de8a7
11 changed files with 53 additions and 50 deletions
|
@ -515,6 +515,7 @@ sys32_signal (int sig, unsigned int handler)
|
||||||
|
|
||||||
sigact_set_handler(&new_sa, handler, 0);
|
sigact_set_handler(&new_sa, handler, 0);
|
||||||
new_sa.sa.sa_flags = SA_ONESHOT | SA_NOMASK;
|
new_sa.sa.sa_flags = SA_ONESHOT | SA_NOMASK;
|
||||||
|
sigemptyset(&new_sa.sa.sa_mask);
|
||||||
|
|
||||||
ret = do_sigaction(sig, &new_sa, &old_sa);
|
ret = do_sigaction(sig, &new_sa, &old_sa);
|
||||||
|
|
||||||
|
|
|
@ -1601,5 +1601,21 @@ sys_call_table:
|
||||||
data8 sys_inotify_add_watch
|
data8 sys_inotify_add_watch
|
||||||
data8 sys_inotify_rm_watch
|
data8 sys_inotify_rm_watch
|
||||||
data8 sys_migrate_pages // 1280
|
data8 sys_migrate_pages // 1280
|
||||||
|
data8 sys_openat
|
||||||
|
data8 sys_mkdirat
|
||||||
|
data8 sys_mknodat
|
||||||
|
data8 sys_fchownat
|
||||||
|
data8 sys_futimesat // 1285
|
||||||
|
data8 sys_newfstatat
|
||||||
|
data8 sys_unlinkat
|
||||||
|
data8 sys_renameat
|
||||||
|
data8 sys_linkat
|
||||||
|
data8 sys_symlinkat // 1290
|
||||||
|
data8 sys_readlinkat
|
||||||
|
data8 sys_fchmodat
|
||||||
|
data8 sys_faccessat
|
||||||
|
data8 sys_ni_syscall // reserved for pselect
|
||||||
|
data8 sys_ni_syscall // 1295 reserved for ppoll
|
||||||
|
data8 sys_unshare
|
||||||
|
|
||||||
.org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls
|
.org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls
|
||||||
|
|
|
@ -878,31 +878,8 @@ fsyscall_table:
|
||||||
data8 0 // timer_delete
|
data8 0 // timer_delete
|
||||||
data8 0 // clock_settime
|
data8 0 // clock_settime
|
||||||
data8 fsys_clock_gettime // clock_gettime
|
data8 fsys_clock_gettime // clock_gettime
|
||||||
data8 0 // clock_getres // 1255
|
#define __NR_syscall_last 1255
|
||||||
data8 0 // clock_nanosleep
|
|
||||||
data8 0 // fstatfs64
|
.space 8*(NR_syscalls + 1024 - __NR_syscall_last), 0
|
||||||
data8 0 // statfs64
|
|
||||||
data8 0
|
|
||||||
data8 0 // 1260
|
|
||||||
data8 0
|
|
||||||
data8 0 // mq_open
|
|
||||||
data8 0 // mq_unlink
|
|
||||||
data8 0 // mq_timedsend
|
|
||||||
data8 0 // mq_timedreceive // 1265
|
|
||||||
data8 0 // mq_notify
|
|
||||||
data8 0 // mq_getsetattr
|
|
||||||
data8 0 // kexec_load
|
|
||||||
data8 0
|
|
||||||
data8 0 // 1270
|
|
||||||
data8 0
|
|
||||||
data8 0
|
|
||||||
data8 0
|
|
||||||
data8 0
|
|
||||||
data8 0 // 1275
|
|
||||||
data8 0
|
|
||||||
data8 0
|
|
||||||
data8 0
|
|
||||||
data8 0
|
|
||||||
data8 0 // 1280
|
|
||||||
|
|
||||||
.org fsyscall_table + 8*NR_syscalls // guard against failures to increase NR_syscalls
|
.org fsyscall_table + 8*NR_syscalls // guard against failures to increase NR_syscalls
|
||||||
|
|
|
@ -437,6 +437,9 @@ recover_from_read_error(slidx_table_t *slidx,
|
||||||
* the process not have any locks of kernel.
|
* the process not have any locks of kernel.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Is minstate valid? */
|
||||||
|
if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate))
|
||||||
|
return 0;
|
||||||
psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr);
|
psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -617,15 +617,15 @@ void sn_bus_store_sysdata(struct pci_dev *dev)
|
||||||
void sn_bus_free_sysdata(void)
|
void sn_bus_free_sysdata(void)
|
||||||
{
|
{
|
||||||
struct sysdata_el *element;
|
struct sysdata_el *element;
|
||||||
struct list_head *list;
|
struct list_head *list, *safe;
|
||||||
|
|
||||||
sn_sysdata_free_start:
|
list_for_each_safe(list, safe, &sn_sysdata_list) {
|
||||||
list_for_each(list, &sn_sysdata_list) {
|
|
||||||
element = list_entry(list, struct sysdata_el, entry);
|
element = list_entry(list, struct sysdata_el, entry);
|
||||||
list_del(&element->entry);
|
list_del(&element->entry);
|
||||||
|
list_del(&(((struct pcidev_info *)
|
||||||
|
(element->sysdata))->pdi_list));
|
||||||
kfree(element->sysdata);
|
kfree(element->sysdata);
|
||||||
kfree(element);
|
kfree(element);
|
||||||
goto sn_sysdata_free_start;
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -299,7 +299,9 @@ void sn_irq_unfixup(struct pci_dev *pci_dev)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sn_irq_info = SN_PCIDEV_INFO(pci_dev)->pdi_sn_irq_info;
|
sn_irq_info = SN_PCIDEV_INFO(pci_dev)->pdi_sn_irq_info;
|
||||||
if (!sn_irq_info || !sn_irq_info->irq_irq) {
|
if (!sn_irq_info)
|
||||||
|
return;
|
||||||
|
if (!sn_irq_info->irq_irq) {
|
||||||
kfree(sn_irq_info);
|
kfree(sn_irq_info);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,7 +146,7 @@ sys_call_table:
|
||||||
/*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
|
/*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
|
||||||
.word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
|
.word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
|
||||||
/*280*/ .word sys_nis_syscall, sys_add_key, sys_request_key, sys_keyctl, sys_openat
|
/*280*/ .word sys_nis_syscall, sys_add_key, sys_request_key, sys_keyctl, sys_openat
|
||||||
.word sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, compat_sys_newfstatat
|
.word sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_newfstatat
|
||||||
/*285*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
|
/*285*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
|
||||||
.word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare
|
.word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare
|
||||||
|
|
||||||
|
|
|
@ -270,12 +270,27 @@
|
||||||
#define __NR_inotify_add_watch 1278
|
#define __NR_inotify_add_watch 1278
|
||||||
#define __NR_inotify_rm_watch 1279
|
#define __NR_inotify_rm_watch 1279
|
||||||
#define __NR_migrate_pages 1280
|
#define __NR_migrate_pages 1280
|
||||||
|
#define __NR_openat 1281
|
||||||
|
#define __NR_mkdirat 1282
|
||||||
|
#define __NR_mknodat 1283
|
||||||
|
#define __NR_fchownat 1284
|
||||||
|
#define __NR_futimesat 1285
|
||||||
|
#define __NR_newfstatat 1286
|
||||||
|
#define __NR_unlinkat 1287
|
||||||
|
#define __NR_renameat 1288
|
||||||
|
#define __NR_linkat 1289
|
||||||
|
#define __NR_symlinkat 1290
|
||||||
|
#define __NR_readlinkat 1291
|
||||||
|
#define __NR_fchmodat 1292
|
||||||
|
#define __NR_faccessat 1293
|
||||||
|
/* 1294, 1295 reserved for pselect/ppoll */
|
||||||
|
#define __NR_unshare 1296
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
|
|
||||||
#define NR_syscalls 270 /* length of syscall table */
|
#define NR_syscalls 273 /* length of syscall table */
|
||||||
|
|
||||||
#define __ARCH_WANT_SYS_RT_SIGACTION
|
#define __ARCH_WANT_SYS_RT_SIGACTION
|
||||||
|
|
||||||
|
|
|
@ -1098,7 +1098,7 @@ extern struct sigqueue *sigqueue_alloc(void);
|
||||||
extern void sigqueue_free(struct sigqueue *);
|
extern void sigqueue_free(struct sigqueue *);
|
||||||
extern int send_sigqueue(int, struct sigqueue *, struct task_struct *);
|
extern int send_sigqueue(int, struct sigqueue *, struct task_struct *);
|
||||||
extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *);
|
extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *);
|
||||||
extern int do_sigaction(int, const struct k_sigaction *, struct k_sigaction *);
|
extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *);
|
||||||
extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long);
|
extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long);
|
||||||
|
|
||||||
/* These can be the second arg to send_sig_info/send_group_sig_info. */
|
/* These can be the second arg to send_sig_info/send_group_sig_info. */
|
||||||
|
|
|
@ -2430,7 +2430,7 @@ sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
do_sigaction(int sig, const struct k_sigaction *act, struct k_sigaction *oact)
|
do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact)
|
||||||
{
|
{
|
||||||
struct k_sigaction *k;
|
struct k_sigaction *k;
|
||||||
sigset_t mask;
|
sigset_t mask;
|
||||||
|
@ -2454,6 +2454,8 @@ do_sigaction(int sig, const struct k_sigaction *act, struct k_sigaction *oact)
|
||||||
*oact = *k;
|
*oact = *k;
|
||||||
|
|
||||||
if (act) {
|
if (act) {
|
||||||
|
sigdelsetmask(&act->sa.sa_mask,
|
||||||
|
sigmask(SIGKILL) | sigmask(SIGSTOP));
|
||||||
/*
|
/*
|
||||||
* POSIX 3.3.1.3:
|
* POSIX 3.3.1.3:
|
||||||
* "Setting a signal action to SIG_IGN for a signal that is
|
* "Setting a signal action to SIG_IGN for a signal that is
|
||||||
|
@ -2479,8 +2481,6 @@ do_sigaction(int sig, const struct k_sigaction *act, struct k_sigaction *oact)
|
||||||
read_lock(&tasklist_lock);
|
read_lock(&tasklist_lock);
|
||||||
spin_lock_irq(&t->sighand->siglock);
|
spin_lock_irq(&t->sighand->siglock);
|
||||||
*k = *act;
|
*k = *act;
|
||||||
sigdelsetmask(&k->sa.sa_mask,
|
|
||||||
sigmask(SIGKILL) | sigmask(SIGSTOP));
|
|
||||||
sigemptyset(&mask);
|
sigemptyset(&mask);
|
||||||
sigaddset(&mask, sig);
|
sigaddset(&mask, sig);
|
||||||
rm_from_queue_full(&mask, &t->signal->shared_pending);
|
rm_from_queue_full(&mask, &t->signal->shared_pending);
|
||||||
|
@ -2495,8 +2495,6 @@ do_sigaction(int sig, const struct k_sigaction *act, struct k_sigaction *oact)
|
||||||
}
|
}
|
||||||
|
|
||||||
*k = *act;
|
*k = *act;
|
||||||
sigdelsetmask(&k->sa.sa_mask,
|
|
||||||
sigmask(SIGKILL) | sigmask(SIGSTOP));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irq(¤t->sighand->siglock);
|
spin_unlock_irq(¤t->sighand->siglock);
|
||||||
|
@ -2702,6 +2700,7 @@ sys_signal(int sig, __sighandler_t handler)
|
||||||
|
|
||||||
new_sa.sa.sa_handler = handler;
|
new_sa.sa.sa_handler = handler;
|
||||||
new_sa.sa.sa_flags = SA_ONESHOT | SA_NOMASK;
|
new_sa.sa.sa_flags = SA_ONESHOT | SA_NOMASK;
|
||||||
|
sigemptyset(&new_sa.sa.sa_mask);
|
||||||
|
|
||||||
ret = do_sigaction(sig, &new_sa, &old_sa);
|
ret = do_sigaction(sig, &new_sa, &old_sa);
|
||||||
|
|
||||||
|
|
|
@ -123,17 +123,7 @@ KBUILD_HAVE_NLS := $(shell \
|
||||||
then echo yes ; \
|
then echo yes ; \
|
||||||
else echo no ; fi)
|
else echo no ; fi)
|
||||||
ifeq ($(KBUILD_HAVE_NLS),no)
|
ifeq ($(KBUILD_HAVE_NLS),no)
|
||||||
HOSTCFLAGS += -DKBUILD_NO_NLS
|
HOSTCFLAGS += -DKBUILD_NO_NLS
|
||||||
else
|
|
||||||
KBUILD_NEED_LINTL := $(shell \
|
|
||||||
if echo -e "\#include <libintl.h>\nint main(int a, char** b) { gettext(\"\"); return 0; }\n" | \
|
|
||||||
$(HOSTCC) $(HOSTCFLAGS) -x c - -o /dev/null> /dev/null 2>&1 ; \
|
|
||||||
then echo no ; \
|
|
||||||
else echo yes ; fi)
|
|
||||||
ifeq ($(KBUILD_NEED_LINTL),yes)
|
|
||||||
HOSTLOADLIBES_conf += -lintl
|
|
||||||
HOSTLOADLIBES_mconf += -lintl
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# generated files seem to need this to find local include files
|
# generated files seem to need this to find local include files
|
||||||
|
|
Loading…
Add table
Reference in a new issue