diff options
-rw-r--r-- | arch/sparc64/kernel/systbls.S | 2 | ||||
-rw-r--r-- | drivers/scsi/sata_mv.c | 11 | ||||
-rw-r--r-- | drivers/scsi/sata_sil.c | 10 | ||||
-rw-r--r-- | include/linux/sched.h | 2 | ||||
-rw-r--r-- | kernel/signal.c | 9 | ||||
-rw-r--r-- | scripts/kconfig/Makefile | 12 |
6 files changed, 25 insertions, 21 deletions
diff --git a/arch/sparc64/kernel/systbls.S b/arch/sparc64/kernel/systbls.S index 5928b3c33e27..a19168510be2 100644 --- a/arch/sparc64/kernel/systbls.S +++ b/arch/sparc64/kernel/systbls.S | |||
@@ -146,7 +146,7 @@ sys_call_table: | |||
146 | /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink | 146 | /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink |
147 | .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid | 147 | .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid |
148 | /*280*/ .word sys_nis_syscall, sys_add_key, sys_request_key, sys_keyctl, sys_openat | 148 | /*280*/ .word sys_nis_syscall, sys_add_key, sys_request_key, sys_keyctl, sys_openat |
149 | .word sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, compat_sys_newfstatat | 149 | .word sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_newfstatat |
150 | /*285*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat | 150 | /*285*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat |
151 | .word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare | 151 | .word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare |
152 | 152 | ||
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c index cd54244058b5..6fddf17a3b70 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c | |||
@@ -510,6 +510,12 @@ static const struct mv_hw_ops mv6xxx_ops = { | |||
510 | }; | 510 | }; |
511 | 511 | ||
512 | /* | 512 | /* |
513 | * module options | ||
514 | */ | ||
515 | static int msi; /* Use PCI msi; either zero (off, default) or non-zero */ | ||
516 | |||
517 | |||
518 | /* | ||
513 | * Functions | 519 | * Functions |
514 | */ | 520 | */ |
515 | 521 | ||
@@ -2191,7 +2197,7 @@ static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2191 | } | 2197 | } |
2192 | 2198 | ||
2193 | /* Enable interrupts */ | 2199 | /* Enable interrupts */ |
2194 | if (pci_enable_msi(pdev) == 0) { | 2200 | if (msi && pci_enable_msi(pdev) == 0) { |
2195 | hpriv->hp_flags |= MV_HP_FLAG_MSI; | 2201 | hpriv->hp_flags |= MV_HP_FLAG_MSI; |
2196 | } else { | 2202 | } else { |
2197 | pci_intx(pdev, 1); | 2203 | pci_intx(pdev, 1); |
@@ -2246,5 +2252,8 @@ MODULE_LICENSE("GPL"); | |||
2246 | MODULE_DEVICE_TABLE(pci, mv_pci_tbl); | 2252 | MODULE_DEVICE_TABLE(pci, mv_pci_tbl); |
2247 | MODULE_VERSION(DRV_VERSION); | 2253 | MODULE_VERSION(DRV_VERSION); |
2248 | 2254 | ||
2255 | module_param(msi, int, 0444); | ||
2256 | MODULE_PARM_DESC(msi, "Enable use of PCI MSI (0=off, 1=on)"); | ||
2257 | |||
2249 | module_init(mv_init); | 2258 | module_init(mv_init); |
2250 | module_exit(mv_exit); | 2259 | module_exit(mv_exit); |
diff --git a/drivers/scsi/sata_sil.c b/drivers/scsi/sata_sil.c index b017f85e6d6a..17f74d3c10e7 100644 --- a/drivers/scsi/sata_sil.c +++ b/drivers/scsi/sata_sil.c | |||
@@ -231,6 +231,10 @@ MODULE_LICENSE("GPL"); | |||
231 | MODULE_DEVICE_TABLE(pci, sil_pci_tbl); | 231 | MODULE_DEVICE_TABLE(pci, sil_pci_tbl); |
232 | MODULE_VERSION(DRV_VERSION); | 232 | MODULE_VERSION(DRV_VERSION); |
233 | 233 | ||
234 | static int slow_down = 0; | ||
235 | module_param(slow_down, int, 0444); | ||
236 | MODULE_PARM_DESC(slow_down, "Sledgehammer used to work around random problems, by limiting commands to 15 sectors (0=off, 1=on)"); | ||
237 | |||
234 | 238 | ||
235 | static unsigned char sil_get_device_cache_line(struct pci_dev *pdev) | 239 | static unsigned char sil_get_device_cache_line(struct pci_dev *pdev) |
236 | { | 240 | { |
@@ -354,8 +358,10 @@ static void sil_dev_config(struct ata_port *ap, struct ata_device *dev) | |||
354 | } | 358 | } |
355 | 359 | ||
356 | /* limit requests to 15 sectors */ | 360 | /* limit requests to 15 sectors */ |
357 | if ((ap->flags & SIL_FLAG_MOD15WRITE) && (quirks & SIL_QUIRK_MOD15WRITE)) { | 361 | if (slow_down || |
358 | printk(KERN_INFO "ata%u(%u): applying Seagate errata fix\n", | 362 | ((ap->flags & SIL_FLAG_MOD15WRITE) && |
363 | (quirks & SIL_QUIRK_MOD15WRITE))) { | ||
364 | printk(KERN_INFO "ata%u(%u): applying Seagate errata fix (mod15write workaround)\n", | ||
359 | ap->id, dev->devno); | 365 | ap->id, dev->devno); |
360 | ap->host->max_sectors = 15; | 366 | ap->host->max_sectors = 15; |
361 | ap->host->hostt->max_sectors = 15; | 367 | ap->host->hostt->max_sectors = 15; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 0cfcd1c7865e..9c1da0269a18 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1098,7 +1098,7 @@ extern struct sigqueue *sigqueue_alloc(void); | |||
1098 | extern void sigqueue_free(struct sigqueue *); | 1098 | extern void sigqueue_free(struct sigqueue *); |
1099 | extern int send_sigqueue(int, struct sigqueue *, struct task_struct *); | 1099 | extern int send_sigqueue(int, struct sigqueue *, struct task_struct *); |
1100 | extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *); | 1100 | extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *); |
1101 | extern int do_sigaction(int, const struct k_sigaction *, struct k_sigaction *); | 1101 | extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); |
1102 | extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long); | 1102 | extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long); |
1103 | 1103 | ||
1104 | /* These can be the second arg to send_sig_info/send_group_sig_info. */ | 1104 | /* These can be the second arg to send_sig_info/send_group_sig_info. */ |
diff --git a/kernel/signal.c b/kernel/signal.c index b373fc2420da..ea154104a00b 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -2430,7 +2430,7 @@ sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo) | |||
2430 | } | 2430 | } |
2431 | 2431 | ||
2432 | int | 2432 | int |
2433 | do_sigaction(int sig, const struct k_sigaction *act, struct k_sigaction *oact) | 2433 | do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact) |
2434 | { | 2434 | { |
2435 | struct k_sigaction *k; | 2435 | struct k_sigaction *k; |
2436 | sigset_t mask; | 2436 | sigset_t mask; |
@@ -2454,6 +2454,8 @@ do_sigaction(int sig, const struct k_sigaction *act, struct k_sigaction *oact) | |||
2454 | *oact = *k; | 2454 | *oact = *k; |
2455 | 2455 | ||
2456 | if (act) { | 2456 | if (act) { |
2457 | sigdelsetmask(&act->sa.sa_mask, | ||
2458 | sigmask(SIGKILL) | sigmask(SIGSTOP)); | ||
2457 | /* | 2459 | /* |
2458 | * POSIX 3.3.1.3: | 2460 | * POSIX 3.3.1.3: |
2459 | * "Setting a signal action to SIG_IGN for a signal that is | 2461 | * "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) | |||
2479 | read_lock(&tasklist_lock); | 2481 | read_lock(&tasklist_lock); |
2480 | spin_lock_irq(&t->sighand->siglock); | 2482 | spin_lock_irq(&t->sighand->siglock); |
2481 | *k = *act; | 2483 | *k = *act; |
2482 | sigdelsetmask(&k->sa.sa_mask, | ||
2483 | sigmask(SIGKILL) | sigmask(SIGSTOP)); | ||
2484 | sigemptyset(&mask); | 2484 | sigemptyset(&mask); |
2485 | sigaddset(&mask, sig); | 2485 | sigaddset(&mask, sig); |
2486 | rm_from_queue_full(&mask, &t->signal->shared_pending); | 2486 | 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) | |||
2495 | } | 2495 | } |
2496 | 2496 | ||
2497 | *k = *act; | 2497 | *k = *act; |
2498 | sigdelsetmask(&k->sa.sa_mask, | ||
2499 | sigmask(SIGKILL) | sigmask(SIGSTOP)); | ||
2500 | } | 2498 | } |
2501 | 2499 | ||
2502 | spin_unlock_irq(¤t->sighand->siglock); | 2500 | spin_unlock_irq(¤t->sighand->siglock); |
@@ -2702,6 +2700,7 @@ sys_signal(int sig, __sighandler_t handler) | |||
2702 | 2700 | ||
2703 | new_sa.sa.sa_handler = handler; | 2701 | new_sa.sa.sa_handler = handler; |
2704 | new_sa.sa.sa_flags = SA_ONESHOT | SA_NOMASK; | 2702 | new_sa.sa.sa_flags = SA_ONESHOT | SA_NOMASK; |
2703 | sigemptyset(&new_sa.sa.sa_mask); | ||
2705 | 2704 | ||
2706 | ret = do_sigaction(sig, &new_sa, &old_sa); | 2705 | ret = do_sigaction(sig, &new_sa, &old_sa); |
2707 | 2706 | ||
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index d64aae85c378..5760e057ecba 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile | |||
@@ -123,17 +123,7 @@ KBUILD_HAVE_NLS := $(shell \ | |||
123 | then echo yes ; \ | 123 | then echo yes ; \ |
124 | else echo no ; fi) | 124 | else echo no ; fi) |
125 | ifeq ($(KBUILD_HAVE_NLS),no) | 125 | ifeq ($(KBUILD_HAVE_NLS),no) |
126 | HOSTCFLAGS += -DKBUILD_NO_NLS | 126 | HOSTCFLAGS += -DKBUILD_NO_NLS |
127 | else | ||
128 | KBUILD_NEED_LINTL := $(shell \ | ||
129 | if echo -e "\#include <libintl.h>\nint main(int a, char** b) { gettext(\"\"); return 0; }\n" | \ | ||
130 | $(HOSTCC) $(HOSTCFLAGS) -x c - -o /dev/null> /dev/null 2>&1 ; \ | ||
131 | then echo no ; \ | ||
132 | else echo yes ; fi) | ||
133 | ifeq ($(KBUILD_NEED_LINTL),yes) | ||
134 | HOSTLOADLIBES_conf += -lintl | ||
135 | HOSTLOADLIBES_mconf += -lintl | ||
136 | endif | ||
137 | endif | 127 | endif |
138 | 128 | ||
139 | # generated files seem to need this to find local include files | 129 | # generated files seem to need this to find local include files |