Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
ca28f9c
can: peak_pci: prevent use after free at netdev removal
May 20, 2014
79cb3ad
staging: tidspbridge: check for CONFIG_SND_OMAP_SOC_MCBSP
pebolle May 26, 2014
9a1c1b3
applicom: dereferencing NULL on error path
May 9, 2014
3860bcc
usb: usbtest: fix unlink write error with pattern 1
huangrui May 26, 2014
7ff2b3d
USB: usbtest: add a timeout for scatter-gather tests
AlanStern Jun 3, 2014
2660752
usb: gadget: rename CONFIG_USB_GADGET_PXA25X
pebolle May 26, 2014
8b98451
usb: dwc3: gadget: clear stall when disabling endpoint
Apr 16, 2014
a46b50e
USB: EHCI: avoid BIOS handover on the HASEE E200
AlanStern Jun 3, 2014
8a41f7b
USB: option: fix runtime PM handling
jhovold May 26, 2014
228d40b
mm/memory-failure.c-failure: send right signal code to correct thread
aegl Jun 4, 2014
c0f4c9b
mm/memory-failure.c: don't let collect_procs() skip over processes fo…
aegl Jun 4, 2014
293a2db
mm: fix sleeping function warning from __put_anon_vma
Jun 4, 2014
28959e4
HID: core: fix validation of report id 0
kees Apr 17, 2014
fb14a5c
mm: vmscan: clear kswapd's special reclaim powers before exiting
hnaz Jun 6, 2014
7eb5aa4
s390/lowcore: reserve 96 bytes for IRB in lowcore
borntraeger May 26, 2014
143d4ad
ext4: fix wrong assert in ext4_mb_normalize_request()
maurizio-lombardi May 27, 2014
75b5c46
matroxfb: perform a dummy read of M_STATUS
May 15, 2014
132fa33
USB: usb_wwan: fix urb leak in write error path
JinXiao-Intel May 26, 2014
e5ee8fa
USB: usb_wwan: fix race between write and resume
JinXiao-Intel May 26, 2014
19dcbb0
USB: usb_wwan: fix write and suspend race
jhovold May 26, 2014
75e6670
USB: usb_wwan: fix urb leak at shutdown
jhovold May 26, 2014
572926b
USB: usb_wwan: fix potential NULL-deref at resume
jhovold May 26, 2014
e59ef69
USB: usb_wwan: fix potential blocked I/O after resume
jhovold May 26, 2014
078b700
USB: sierra: fix AA deadlock in open error path
jhovold May 26, 2014
bbcaf73
USB: sierra: fix use after free at suspend/resume
jhovold May 26, 2014
6f2ced2
USB: sierra: fix urb and memory leak in resume error path
jhovold May 26, 2014
505d2c0
USB: sierra: fix urb and memory leak on disconnect
jhovold May 26, 2014
25a274a
USB: sierra: fix remote wakeup
jhovold May 26, 2014
eafed04
ACPI: Fix conflict between customized DSDT and DSDT local copy
May 12, 2014
7bf7688
ARM: stacktrace: avoid listing stacktrace functions in stacktrace
May 3, 2014
9885648
target: Explicitly clear ramdisk_mcp backend pages
Jun 16, 2014
3ee4b6d
x86-32, espfix: Remove filter for espfix32 due to race
Apr 30, 2014
fe930d7
x86, x32: Use compat shims for io_{setup,submit}
vapier May 5, 2014
5d7d6e7
genirq: Sanitize spurious interrupt detection of threaded irqs
KAGA-KOKO Mar 7, 2013
1711cd4
skbuff: add an api to orphan frags
mstsirkin Jul 20, 2012
f9232c5
skbuff: export skb_copy_ubufs
mstsirkin Jul 20, 2012
2e6ca96
skbuff: skb_segment: orphan frags before copying
mstsirkin Mar 10, 2014
f0e9a2d
Btrfs: fix double free in find_lock_delalloc_range
masoncl May 21, 2014
36c07f5
fs: btrfs: volumes.c: Fix for possible null pointer dereference
May 22, 2014
5c7c8b7
Btrfs: use right type to get real comparison
Jun 8, 2014
cbea37e
btrfs: fix use of uninit "ret" in end_extent_writepage()
Jun 12, 2014
48cf06d
usb: usbtest: Add timetout to simple_io()
Dec 18, 2013
2440afa
x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508)
amluto Jun 23, 2014
c771441
Linux 3.4.96
gregkh Jul 1, 2014
7a7e6e7
Squashed revert of panel color shifting sysfs interface
SyNtheticNightmar3 Jul 5, 2014
3fa338d
Add Gamma Control v1
franciscofranco Feb 9, 2013
a4dcb16
GammaControl: Rework for the d2 family
SyNtheticNightmar3 Jul 4, 2014
e93b4a9
GammaControl: create a single tunable knob using previous presets
nardholio Jul 5, 2014
42668b9
motor: tspdrv: Check buffer size before copying
SyNtheticNightmar3 Jun 18, 2014
08123e4
motor: tspdrv: return on invalid buffer index
SyNtheticNightmar3 Jun 18, 2014
d78073e
mm: fix anon vma naming
colincross Oct 30, 2013
15eecbd
dhd: apply old changes to updated driver
Jun 26, 2014
7d6f30c
m2: increase volume key debounce to 8
nardholio Jul 6, 2014
ce4cd6c
Input: elantech - deal with clickpads reporting right button events
jwrdegoede Jun 8, 2014
4e6981c
GammaControl: Fix tuner being set
SyNtheticNightmar3 Jul 6, 2014
bebf4a3
PCI: Add new ID for Intel GPU "spurious interrupt" quirk
thomasjfox Apr 7, 2014
3a4f590
PCI: Fix incorrect vgaarb conditional in WARN_ON()
bjorn-helgaas Apr 5, 2014
8a6f704
recordmcount/MIPS: Fix possible incorrect mcount_loc table entries in…
Jun 17, 2014
1f93d78
MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region
Jun 23, 2014
f6752e2
UBIFS: Remove incorrect assertion in shrink_tnc()
May 31, 2014
09f0fb3
watchdog: sp805: Set watchdog_device->timeout from ->set_timeout()
vireshk May 15, 2014
6df3c18
IB/qib: Fix port in pkey change event
May 2, 2014
4af9775
IB/ipath: Translate legacy diagpkt into newer extended diagpkt
May 2, 2014
91e7394
IB/srp: Fix a sporadic crash triggered by cable pulling
bvanassche May 20, 2014
4c0b22f
IB/umad: Fix error handling
bvanassche May 20, 2014
d2b61c7
IB/umad: Fix use-after-free on close
bvanassche Jun 6, 2014
f553df4
nfsd4: fix FREE_STATEID lockowner leak
May 27, 2014
aac1b01
nfsd: getattr for FATTR4_WORD0_FILES_AVAIL needs the statfs buffer
May 28, 2014
2c4dd3d
powerpc/pseries: Fix overwritten PE state
Apr 24, 2014
32f3a17
powerpc: fix typo 'CONFIG_PMAC'
pebolle May 20, 2014
596b6ab
powerpc: fix typo 'CONFIG_PPC_CPU'
pebolle May 20, 2014
fa8792e
ptrace,x86: force IRET path after a ptrace_stop()
htejun Jul 3, 2014
d73aefc
tracing: Fix syscall_*regfunc() vs copy_process() race
oleg-nesterov Apr 13, 2014
054a3e9
GammaControl: Color mods fixup
SyNtheticNightmar3 Jul 7, 2014
1bd229b
mipi_samsung_oled: Set gammas without need for a screen reset
Jul 7, 2014
5a58b43
oled: d2, etc: Clean up some logspam
SyNtheticNightmar3 Jul 7, 2014
35166bf
Gammacontrol: Lucky number 13
nardholio Jul 7, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
VERSION = 3
PATCHLEVEL = 4
SUBLEVEL = 95
SUBLEVEL = 96
EXTRAVERSION =
NAME = Saber-toothed Squirrel

Expand Down
18 changes: 13 additions & 5 deletions arch/arm/kernel/stacktrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,16 @@ static int save_trace(struct stackframe *frame, void *d)
return trace->nr_entries >= trace->max_entries;
}

void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
/* This must be noinline to so that our skip calculation works correctly */
static noinline void __save_stack_trace(struct task_struct *tsk,
struct stack_trace *trace, unsigned int nosched)
{
struct stack_trace_data data;
struct stackframe frame;

data.trace = trace;
data.skip = trace->skip;
data.no_sched_functions = nosched;

if (tsk != current) {
#ifdef CONFIG_SMP
Expand All @@ -102,7 +105,6 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
trace->entries[trace->nr_entries++] = ULONG_MAX;
return;
#else
data.no_sched_functions = 1;
frame.fp = thread_saved_fp(tsk);
frame.sp = thread_saved_sp(tsk);
frame.lr = 0; /* recovered from the stack */
Expand All @@ -111,21 +113,27 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
} else {
register unsigned long current_sp asm ("sp");

data.no_sched_functions = 0;
/* We don't want this function nor the caller */
data.skip += 2;
frame.fp = (unsigned long)__builtin_frame_address(0);
frame.sp = current_sp;
frame.lr = (unsigned long)__builtin_return_address(0);
frame.pc = (unsigned long)save_stack_trace_tsk;
frame.pc = (unsigned long)__save_stack_trace;
}

walk_stackframe(&frame, save_trace, &data);
if (trace->nr_entries < trace->max_entries)
trace->entries[trace->nr_entries++] = ULONG_MAX;
}

void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
{
__save_stack_trace(tsk, trace, 1);
}

void save_stack_trace(struct stack_trace *trace)
{
save_stack_trace_tsk(current, trace);
__save_stack_trace(current, trace, 0);
}
EXPORT_SYMBOL_GPL(save_stack_trace);
#endif
4 changes: 2 additions & 2 deletions arch/arm/mach-msm/board-m2.c
Original file line number Diff line number Diff line change
Expand Up @@ -4120,7 +4120,7 @@ static struct gpio_keys_button gpio_keys_button[] = {
.gpio = -1,
.active_low = 1,
.wakeup = 0,
.debounce_interval = 5, /* ms */
.debounce_interval = 8, /* ms */
.desc = "Vol Up",
},
{
Expand All @@ -4129,7 +4129,7 @@ static struct gpio_keys_button gpio_keys_button[] = {
.gpio = -1,
.active_low = 1,
.wakeup = 0,
.debounce_interval = 5, /* ms */
.debounce_interval = 8, /* ms */
.desc = "Vol Down",
},
{
Expand Down
2 changes: 1 addition & 1 deletion arch/mips/kernel/irq-msc01.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ void __init init_msc_irqs(unsigned long icubase, unsigned int irqbase, msc_irqma

board_bind_eic_interrupt = &msc_bind_eic_interrupt;

for (; nirq >= 0; nirq--, imp++) {
for (; nirq > 0; nirq--, imp++) {
int n = imp->im_irq;

switch (imp->im_type) {
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ void timer_interrupt(struct pt_regs * regs)

__get_cpu_var(irq_stat).timer_irqs++;

#if defined(CONFIG_PPC32) && defined(CONFIG_PMAC)
#if defined(CONFIG_PPC32) && defined(CONFIG_PPC_PMAC)
if (atomic_read(&ppc_n_lost_interrupts) != 0)
do_IRQ(regs);
#endif
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/lib/sstep.c
Original file line number Diff line number Diff line change
Expand Up @@ -1395,7 +1395,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
regs->gpr[rd] = byterev_4(val);
goto ldst_done;

#ifdef CONFIG_PPC_CPU
#ifdef CONFIG_PPC_FPU
case 535: /* lfsx */
case 567: /* lfsux */
if (!(regs->msr & MSR_FP))
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/platforms/pseries/eeh_pseries.c
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,7 @@ static int pseries_eeh_get_state(struct device_node *dn, int *state)
} else {
result = EEH_STATE_NOT_SUPPORT;
}
break;
default:
result = EEH_STATE_NOT_SUPPORT;
}
Expand Down
11 changes: 6 additions & 5 deletions arch/s390/include/asm/lowcore.h
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,9 @@ struct _lowcore {
__u8 pad_0x02fc[0x0300-0x02fc]; /* 0x02fc */

/* Interrupt response block */
__u8 irb[64]; /* 0x0300 */
__u8 irb[96]; /* 0x0300 */

__u8 pad_0x0340[0x0e00-0x0340]; /* 0x0340 */
__u8 pad_0x0360[0x0e00-0x0360]; /* 0x0360 */

/*
* 0xe00 contains the address of the IPL Parameter Information
Expand Down Expand Up @@ -288,12 +288,13 @@ struct _lowcore {
__u8 pad_0x03a0[0x0400-0x03a0]; /* 0x03a0 */

/* Interrupt response block. */
__u8 irb[64]; /* 0x0400 */
__u8 irb[96]; /* 0x0400 */
__u8 pad_0x0460[0x0480-0x0460]; /* 0x0460 */

/* Per cpu primary space access list */
__u32 paste[16]; /* 0x0440 */
__u32 paste[16]; /* 0x0480 */

__u8 pad_0x0480[0x0e00-0x0480]; /* 0x0480 */
__u8 pad_0x04c0[0x0e00-0x04c0]; /* 0x04c0 */

/*
* 0xe00 contains the address of the IPL Parameter Information
Expand Down
16 changes: 16 additions & 0 deletions arch/x86/include/asm/ptrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,22 @@ static inline unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs,

#define ARCH_HAS_USER_SINGLE_STEP_INFO

/*
* When hitting ptrace_stop(), we cannot return using SYSRET because
* that does not restore the full CPU state, only a minimal set. The
* ptracer can change arbitrary register values, which is usually okay
* because the usual ptrace stops run off the signal delivery path which
* forces IRET; however, ptrace_event() stops happen in arbitrary places
* in the kernel and don't force IRET path.
*
* So force IRET path after a ptrace stop.
*/
#define arch_ptrace_stop_needed(code, info) \
({ \
set_thread_flag(TIF_NOTIFY_RESUME); \
false; \
})

struct user_desc;
extern int do_get_thread_area(struct task_struct *p, int idx,
struct user_desc __user *info);
Expand Down
15 changes: 8 additions & 7 deletions arch/x86/kernel/entry_32.S
Original file line number Diff line number Diff line change
Expand Up @@ -426,9 +426,10 @@ sysenter_past_esp:
jnz sysenter_audit
sysenter_do_call:
cmpl $(NR_syscalls), %eax
jae syscall_badsys
jae sysenter_badsys
call *sys_call_table(,%eax,4)
movl %eax,PT_EAX(%esp)
sysenter_after_call:
LOCKDEP_SYS_EXIT
DISABLE_INTERRUPTS(CLBR_ANY)
TRACE_IRQS_OFF
Expand Down Expand Up @@ -550,11 +551,6 @@ ENTRY(iret_exc)

CFI_RESTORE_STATE
ldt_ss:
larl PT_OLDSS(%esp), %eax
jnz restore_nocheck
testl $0x00400000, %eax # returning to 32bit stack?
jnz restore_nocheck # allright, normal return

#ifdef CONFIG_PARAVIRT
/*
* The kernel can't run on a non-flat stack if paravirt mode
Expand Down Expand Up @@ -683,7 +679,12 @@ END(syscall_fault)

syscall_badsys:
movl $-ENOSYS,PT_EAX(%esp)
jmp resume_userspace
jmp syscall_exit
END(syscall_badsys)

sysenter_badsys:
movl $-ENOSYS,PT_EAX(%esp)
jmp sysenter_after_call
END(syscall_badsys)
CFI_ENDPROC
/*
Expand Down
6 changes: 4 additions & 2 deletions arch/x86/syscalls/syscall_64.tbl
Original file line number Diff line number Diff line change
Expand Up @@ -212,10 +212,10 @@
203 common sched_setaffinity sys_sched_setaffinity
204 common sched_getaffinity sys_sched_getaffinity
205 64 set_thread_area
206 common io_setup sys_io_setup
206 64 io_setup sys_io_setup
207 common io_destroy sys_io_destroy
208 common io_getevents sys_io_getevents
209 common io_submit sys_io_submit
209 64 io_submit sys_io_submit
210 common io_cancel sys_io_cancel
211 64 get_thread_area
212 common lookup_dcookie sys_lookup_dcookie
Expand Down Expand Up @@ -353,3 +353,5 @@
540 x32 process_vm_writev compat_sys_process_vm_writev
541 x32 setsockopt compat_sys_setsockopt
542 x32 getsockopt compat_sys_getsockopt
543 x32 io_setup compat_sys_io_setup
544 x32 io_submit compat_sys_io_submit
7 changes: 7 additions & 0 deletions drivers/acpi/bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,20 @@ EXPORT_SYMBOL(acpi_root_dir);


#ifdef CONFIG_X86
#ifdef CONFIG_ACPI_CUSTOM_DSDT
static inline int set_copy_dsdt(const struct dmi_system_id *id)
{
return 0;
}
#else
static int set_copy_dsdt(const struct dmi_system_id *id)
{
printk(KERN_NOTICE "%s detected - "
"force copy of DSDT to local memory\n", id->ident);
acpi_gbl_copy_dsdt_locally = 1;
return 0;
}
#endif

static struct dmi_system_id dsdt_dmi_table[] __initdata = {
/*
Expand Down
1 change: 0 additions & 1 deletion drivers/char/applicom.c
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,6 @@ static int __init applicom_init(void)
free_irq(apbs[i].irq, &dummy);
iounmap(apbs[i].RamIO);
}
pci_disable_device(dev);
return ret;
}

Expand Down
12 changes: 11 additions & 1 deletion drivers/hid/hid-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -861,7 +861,17 @@ struct hid_report *hid_validate_values(struct hid_device *hid,
* ->numbered being checked, which may not always be the case when
* drivers go to access report values.
*/
report = hid->report_enum[type].report_id_hash[id];
if (id == 0) {
/*
* Validating on id 0 means we should examine the first
* report in the list.
*/
report = list_entry(
hid->report_enum[type].report_list.next,
struct hid_report, list);
} else {
report = hid->report_enum[type].report_id_hash[id];
}
if (!report) {
hid_err(hid, "missing %s %u\n", hid_report_names[type], id);
return NULL;
Expand Down
Loading