Pull linus into release branch
This commit is contained in:
commit
d78fef14c2
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
||||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 15
|
||||
EXTRAVERSION =-rc7
|
||||
EXTRAVERSION =
|
||||
NAME=Sliding Snow Leopard
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
@ -554,7 +554,9 @@ int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs)
|
||||
struct pt_regs ptregs;
|
||||
|
||||
ptregs = *(struct pt_regs *)
|
||||
((unsigned long)tsk->thread_info+THREAD_SIZE - sizeof(ptregs));
|
||||
((unsigned long)tsk->thread_info +
|
||||
/* see comments in copy_thread() about -8 */
|
||||
THREAD_SIZE - sizeof(ptregs) - 8);
|
||||
ptregs.xcs &= 0xffff;
|
||||
ptregs.xds &= 0xffff;
|
||||
ptregs.xes &= 0xffff;
|
||||
|
@ -172,7 +172,7 @@ static int warrior_connect(struct serio *serio, struct serio_driver *drv)
|
||||
input_set_abs_params(input_dev, ABS_Y, -64, 64, 0, 8);
|
||||
input_set_abs_params(input_dev, ABS_THROTTLE, -112, 112, 0, 0);
|
||||
input_set_abs_params(input_dev, ABS_HAT0X, -1, 1, 0, 0);
|
||||
input_set_abs_params(input_dev, ABS_HAT0X, -1, 1, 0, 0);
|
||||
input_set_abs_params(input_dev, ABS_HAT0Y, -1, 1, 0, 0);
|
||||
|
||||
serio_set_drvdata(serio, warrior);
|
||||
|
||||
|
@ -923,7 +923,7 @@ static void do_monitor_cpu_combined(void)
|
||||
if (temp_combi >= ((state0->mpu.tmax + 8) << 16)) {
|
||||
printk(KERN_WARNING "Warning ! Temperature way above maximum (%d) !\n",
|
||||
temp_combi >> 16);
|
||||
state0->overtemp = CPU_MAX_OVERTEMP;
|
||||
state0->overtemp += CPU_MAX_OVERTEMP / 4;
|
||||
} else if (temp_combi > (state0->mpu.tmax << 16))
|
||||
state0->overtemp++;
|
||||
else
|
||||
@ -998,7 +998,7 @@ static void do_monitor_cpu_split(struct cpu_pid_state *state)
|
||||
printk(KERN_WARNING "Warning ! CPU %d temperature way above maximum"
|
||||
" (%d) !\n",
|
||||
state->index, temp >> 16);
|
||||
state->overtemp = CPU_MAX_OVERTEMP;
|
||||
state->overtemp += CPU_MAX_OVERTEMP / 4;
|
||||
} else if (temp > (state->mpu.tmax << 16))
|
||||
state->overtemp++;
|
||||
else
|
||||
@ -1060,7 +1060,7 @@ static void do_monitor_cpu_rack(struct cpu_pid_state *state)
|
||||
printk(KERN_WARNING "Warning ! CPU %d temperature way above maximum"
|
||||
" (%d) !\n",
|
||||
state->index, temp >> 16);
|
||||
state->overtemp = CPU_MAX_OVERTEMP;
|
||||
state->overtemp = CPU_MAX_OVERTEMP / 4;
|
||||
} else if (temp > (state->mpu.tmax << 16))
|
||||
state->overtemp++;
|
||||
else
|
||||
|
@ -361,7 +361,7 @@ static int serial_pxa_startup(struct uart_port *port)
|
||||
if (port->line == 3) /* HWUART */
|
||||
up->mcr |= UART_MCR_AFE;
|
||||
else
|
||||
up->mcr = 0;
|
||||
up->mcr = 0;
|
||||
|
||||
/*
|
||||
* Allocate the IRQ
|
||||
@ -641,7 +641,7 @@ serial_pxa_console_write(struct console *co, const char *s, unsigned int count)
|
||||
int i;
|
||||
|
||||
/*
|
||||
* First save the UER then disable the interrupts
|
||||
* First save the IER then disable the interrupts
|
||||
*/
|
||||
ier = serial_in(up, UART_IER);
|
||||
serial_out(up, UART_IER, UART_IER_UUE);
|
||||
|
@ -159,7 +159,7 @@ static int kbtab_probe(struct usb_interface *intf, const struct usb_device_id *i
|
||||
input_dev->keybit[LONG(BTN_DIGI)] |= BIT(BTN_TOOL_PEN) | BIT(BTN_TOUCH);
|
||||
input_dev->mscbit[0] |= BIT(MSC_SERIAL);
|
||||
input_set_abs_params(input_dev, ABS_X, 0, 0x2000, 4, 0);
|
||||
input_set_abs_params(input_dev, ABS_X, 0, 0x1750, 4, 0);
|
||||
input_set_abs_params(input_dev, ABS_Y, 0, 0x1750, 4, 0);
|
||||
input_set_abs_params(input_dev, ABS_PRESSURE, 0, 0xff, 0, 0);
|
||||
|
||||
endpoint = &intf->cur_altsetting->endpoint[0].desc;
|
||||
|
@ -854,7 +854,7 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
|
||||
|
||||
input_dev->evbit[0] |= BIT(EV_KEY) | BIT(EV_ABS);
|
||||
input_dev->keybit[LONG(BTN_DIGI)] |= BIT(BTN_TOOL_PEN) | BIT(BTN_TOUCH) | BIT(BTN_STYLUS);
|
||||
input_set_abs_params(input_dev, ABS_X, 0, wacom->features->y_max, 4, 0);
|
||||
input_set_abs_params(input_dev, ABS_X, 0, wacom->features->x_max, 4, 0);
|
||||
input_set_abs_params(input_dev, ABS_Y, 0, wacom->features->y_max, 4, 0);
|
||||
input_set_abs_params(input_dev, ABS_PRESSURE, 0, wacom->features->pressure_max, 0, 0);
|
||||
|
||||
|
@ -54,6 +54,18 @@ proc_file_read(struct file *file, char __user *buf, size_t nbytes,
|
||||
ssize_t n, count;
|
||||
char *start;
|
||||
struct proc_dir_entry * dp;
|
||||
unsigned long long pos;
|
||||
|
||||
/*
|
||||
* Gaah, please just use "seq_file" instead. The legacy /proc
|
||||
* interfaces cut loff_t down to off_t for reads, and ignore
|
||||
* the offset entirely for writes..
|
||||
*/
|
||||
pos = *ppos;
|
||||
if (pos > MAX_NON_LFS)
|
||||
return 0;
|
||||
if (nbytes > MAX_NON_LFS - pos)
|
||||
nbytes = MAX_NON_LFS - pos;
|
||||
|
||||
dp = PDE(inode);
|
||||
if (!(page = (char*) __get_free_page(GFP_KERNEL)))
|
||||
@ -202,30 +214,17 @@ proc_file_write(struct file *file, const char __user *buffer,
|
||||
static loff_t
|
||||
proc_file_lseek(struct file *file, loff_t offset, int orig)
|
||||
{
|
||||
lock_kernel();
|
||||
|
||||
switch (orig) {
|
||||
case 0:
|
||||
if (offset < 0)
|
||||
goto out;
|
||||
file->f_pos = offset;
|
||||
unlock_kernel();
|
||||
return(file->f_pos);
|
||||
case 1:
|
||||
if (offset + file->f_pos < 0)
|
||||
goto out;
|
||||
file->f_pos += offset;
|
||||
unlock_kernel();
|
||||
return(file->f_pos);
|
||||
case 2:
|
||||
goto out;
|
||||
default:
|
||||
goto out;
|
||||
}
|
||||
|
||||
out:
|
||||
unlock_kernel();
|
||||
return -EINVAL;
|
||||
loff_t retval = -EINVAL;
|
||||
switch (orig) {
|
||||
case 1:
|
||||
offset += file->f_pos;
|
||||
/* fallthrough */
|
||||
case 0:
|
||||
if (offset < 0 || offset > MAX_NON_LFS)
|
||||
break;
|
||||
file->f_pos = retval = offset;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int proc_notify_change(struct dentry *dentry, struct iattr *iattr)
|
||||
|
@ -1,9 +1,8 @@
|
||||
#include <linux/config.h>
|
||||
|
||||
#ifndef _ASMi386_PARAM_H
|
||||
#define _ASMi386_PARAM_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
# include <linux/config.h>
|
||||
# define HZ CONFIG_HZ /* Internal kernel timer frequency */
|
||||
# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
|
||||
# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
|
||||
|
@ -1,9 +1,8 @@
|
||||
#include <linux/config.h>
|
||||
|
||||
#ifndef _ASMx86_64_PARAM_H
|
||||
#define _ASMx86_64_PARAM_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
# include <linux/config.h>
|
||||
# define HZ CONFIG_HZ /* Internal kernel timer frequency */
|
||||
# define USER_HZ 100 /* .. some user interfaces are in "ticks */
|
||||
#define CLOCKS_PER_SEC (USER_HZ) /* like times() */
|
||||
|
@ -2192,29 +2192,32 @@ int sysctl_string(ctl_table *table, int __user *name, int nlen,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen, void **context)
|
||||
{
|
||||
size_t l, len;
|
||||
|
||||
if (!table->data || !table->maxlen)
|
||||
return -ENOTDIR;
|
||||
|
||||
if (oldval && oldlenp) {
|
||||
if (get_user(len, oldlenp))
|
||||
size_t bufsize;
|
||||
if (get_user(bufsize, oldlenp))
|
||||
return -EFAULT;
|
||||
if (len) {
|
||||
l = strlen(table->data);
|
||||
if (len > l) len = l;
|
||||
if (len >= table->maxlen)
|
||||
if (bufsize) {
|
||||
size_t len = strlen(table->data), copied;
|
||||
|
||||
/* This shouldn't trigger for a well-formed sysctl */
|
||||
if (len > table->maxlen)
|
||||
len = table->maxlen;
|
||||
if(copy_to_user(oldval, table->data, len))
|
||||
|
||||
/* Copy up to a max of bufsize-1 bytes of the string */
|
||||
copied = (len >= bufsize) ? bufsize - 1 : len;
|
||||
|
||||
if (copy_to_user(oldval, table->data, copied) ||
|
||||
put_user(0, (char __user *)(oldval + copied)))
|
||||
return -EFAULT;
|
||||
if(put_user(0, ((char __user *) oldval) + len))
|
||||
return -EFAULT;
|
||||
if(put_user(len, oldlenp))
|
||||
if (put_user(len, oldlenp))
|
||||
return -EFAULT;
|
||||
}
|
||||
}
|
||||
if (newval && newlen) {
|
||||
len = newlen;
|
||||
size_t len = newlen;
|
||||
if (len > table->maxlen)
|
||||
len = table->maxlen;
|
||||
if(copy_from_user(table->data, newval, len))
|
||||
@ -2223,7 +2226,7 @@ int sysctl_string(ctl_table *table, int __user *name, int nlen,
|
||||
len--;
|
||||
((char *) table->data)[len] = 0;
|
||||
}
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -161,6 +161,10 @@ static struct mempolicy *mpol_new(int mode, nodemask_t *nodes)
|
||||
switch (mode) {
|
||||
case MPOL_INTERLEAVE:
|
||||
policy->v.nodes = *nodes;
|
||||
if (nodes_weight(*nodes) == 0) {
|
||||
kmem_cache_free(policy_cache, policy);
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
break;
|
||||
case MPOL_PREFERRED:
|
||||
policy->v.preferred_node = first_node(*nodes);
|
||||
|
Loading…
Reference in New Issue
Block a user