mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
This commit is contained in:
commit
33edcf133b
2974 changed files with 145252 additions and 81987 deletions
|
|
@ -99,7 +99,7 @@ config GENERIC_IOMAP
|
|||
bool
|
||||
default y
|
||||
|
||||
config SCHED_NO_NO_OMIT_FRAME_POINTER
|
||||
config SCHED_OMIT_FRAME_POINTER
|
||||
bool
|
||||
default y
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ menu "HP Simulator drivers"
|
|||
|
||||
config HP_SIMETH
|
||||
bool "Simulated Ethernet "
|
||||
depends on NET
|
||||
|
||||
config HP_SIMSERIAL
|
||||
bool "Simulated serial driver support"
|
||||
|
|
|
|||
|
|
@ -167,6 +167,15 @@ netdev_read(int fd, unsigned char *buf, unsigned int len)
|
|||
return ia64_ssc(fd, __pa(buf), len, 0, SSC_NETDEV_RECV);
|
||||
}
|
||||
|
||||
static const struct net_device_ops simeth_netdev_ops = {
|
||||
.ndo_open = simeth_open,
|
||||
.ndo_stop = simeth_close,
|
||||
.ndo_start_xmit = simeth_tx,
|
||||
.ndo_get_stats = simeth_get_stats,
|
||||
.ndo_set_multicast_list = set_multicast_list, /* not yet used */
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
* Function shared with module code, so cannot be in init section
|
||||
*
|
||||
|
|
@ -206,14 +215,10 @@ simeth_probe1(void)
|
|||
|
||||
memcpy(dev->dev_addr, mac_addr, sizeof(mac_addr));
|
||||
|
||||
local = dev->priv;
|
||||
local = netdev_priv(dev);
|
||||
local->simfd = fd; /* keep track of underlying file descriptor */
|
||||
|
||||
dev->open = simeth_open;
|
||||
dev->stop = simeth_close;
|
||||
dev->hard_start_xmit = simeth_tx;
|
||||
dev->get_stats = simeth_get_stats;
|
||||
dev->set_multicast_list = set_multicast_list; /* no yet used */
|
||||
dev->netdev_ops = &simeth_netdev_ops;
|
||||
|
||||
err = register_netdev(dev);
|
||||
if (err) {
|
||||
|
|
@ -325,7 +330,7 @@ simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr)
|
|||
* we get DOWN then UP.
|
||||
*/
|
||||
|
||||
local = dev->priv;
|
||||
local = netdev_priv(dev);
|
||||
/* now do it for real */
|
||||
r = event == NETDEV_UP ?
|
||||
netdev_attach(local->simfd, dev->irq, ntohl(ifa->ifa_local)):
|
||||
|
|
@ -380,7 +385,7 @@ frame_print(unsigned char *from, unsigned char *frame, int len)
|
|||
static int
|
||||
simeth_tx(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
struct simeth_local *local = dev->priv;
|
||||
struct simeth_local *local = netdev_priv(dev);
|
||||
|
||||
#if 0
|
||||
/* ensure we have at least ETH_ZLEN bytes (min frame size) */
|
||||
|
|
@ -443,7 +448,7 @@ simeth_rx(struct net_device *dev)
|
|||
int len;
|
||||
int rcv_count = SIMETH_RECV_MAX;
|
||||
|
||||
local = dev->priv;
|
||||
local = netdev_priv(dev);
|
||||
/*
|
||||
* the loop concept has been borrowed from other drivers
|
||||
* looks to me like it's a throttling thing to avoid pushing to many
|
||||
|
|
@ -507,7 +512,7 @@ simeth_interrupt(int irq, void *dev_id)
|
|||
static struct net_device_stats *
|
||||
simeth_get_stats(struct net_device *dev)
|
||||
{
|
||||
struct simeth_local *local = dev->priv;
|
||||
struct simeth_local *local = netdev_priv(dev);
|
||||
|
||||
return &local->stats;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1767,25 +1767,24 @@ groups16_from_user(struct group_info *group_info, short __user *grouplist)
|
|||
asmlinkage long
|
||||
sys32_getgroups16 (int gidsetsize, short __user *grouplist)
|
||||
{
|
||||
const struct cred *cred = current_cred();
|
||||
int i;
|
||||
|
||||
if (gidsetsize < 0)
|
||||
return -EINVAL;
|
||||
|
||||
get_group_info(current->group_info);
|
||||
i = current->group_info->ngroups;
|
||||
i = cred->group_info->ngroups;
|
||||
if (gidsetsize) {
|
||||
if (i > gidsetsize) {
|
||||
i = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (groups16_to_user(grouplist, current->group_info)) {
|
||||
if (groups16_to_user(grouplist, cred->group_info)) {
|
||||
i = -EFAULT;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
out:
|
||||
put_group_info(current->group_info);
|
||||
return i;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ mca_handler_bh(unsigned long paddr, void *iip, unsigned long ipsr)
|
|||
ia64_mlogbuf_dump();
|
||||
printk(KERN_ERR "OS_MCA: process [cpu %d, pid: %d, uid: %d, "
|
||||
"iip: %p, psr: 0x%lx,paddr: 0x%lx](%s) encounters MCA.\n",
|
||||
raw_smp_processor_id(), current->pid, current->uid,
|
||||
raw_smp_processor_id(), current->pid, current_uid(),
|
||||
iip, ipsr, paddr, current->comm);
|
||||
|
||||
spin_lock(&mca_bh_lock);
|
||||
|
|
|
|||
|
|
@ -2220,8 +2220,8 @@ pfm_alloc_file(pfm_context_t *ctx)
|
|||
DPRINT(("new inode ino=%ld @%p\n", inode->i_ino, inode));
|
||||
|
||||
inode->i_mode = S_IFCHR|S_IRUGO;
|
||||
inode->i_uid = current->fsuid;
|
||||
inode->i_gid = current->fsgid;
|
||||
inode->i_uid = current_fsuid();
|
||||
inode->i_gid = current_fsgid();
|
||||
|
||||
sprintf(name, "[%lu]", inode->i_ino);
|
||||
this.name = name;
|
||||
|
|
@ -2399,22 +2399,33 @@ error_kmem:
|
|||
static int
|
||||
pfm_bad_permissions(struct task_struct *task)
|
||||
{
|
||||
const struct cred *tcred;
|
||||
uid_t uid = current_uid();
|
||||
gid_t gid = current_gid();
|
||||
int ret;
|
||||
|
||||
rcu_read_lock();
|
||||
tcred = __task_cred(task);
|
||||
|
||||
/* inspired by ptrace_attach() */
|
||||
DPRINT(("cur: uid=%d gid=%d task: euid=%d suid=%d uid=%d egid=%d sgid=%d\n",
|
||||
current->uid,
|
||||
current->gid,
|
||||
task->euid,
|
||||
task->suid,
|
||||
task->uid,
|
||||
task->egid,
|
||||
task->sgid));
|
||||
uid,
|
||||
gid,
|
||||
tcred->euid,
|
||||
tcred->suid,
|
||||
tcred->uid,
|
||||
tcred->egid,
|
||||
tcred->sgid));
|
||||
|
||||
return ((current->uid != task->euid)
|
||||
|| (current->uid != task->suid)
|
||||
|| (current->uid != task->uid)
|
||||
|| (current->gid != task->egid)
|
||||
|| (current->gid != task->sgid)
|
||||
|| (current->gid != task->gid)) && !capable(CAP_SYS_PTRACE);
|
||||
ret = ((uid != tcred->euid)
|
||||
|| (uid != tcred->suid)
|
||||
|| (uid != tcred->uid)
|
||||
|| (gid != tcred->egid)
|
||||
|| (gid != tcred->sgid)
|
||||
|| (gid != tcred->gid)) && !capable(CAP_SYS_PTRACE);
|
||||
|
||||
rcu_read_unlock();
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ ia64_rt_sigreturn (struct sigscratch *scr)
|
|||
si.si_errno = 0;
|
||||
si.si_code = SI_KERNEL;
|
||||
si.si_pid = task_pid_vnr(current);
|
||||
si.si_uid = current->uid;
|
||||
si.si_uid = current_uid();
|
||||
si.si_addr = sc;
|
||||
force_sig_info(SIGSEGV, &si, current);
|
||||
return retval;
|
||||
|
|
@ -326,7 +326,7 @@ force_sigsegv_info (int sig, void __user *addr)
|
|||
si.si_errno = 0;
|
||||
si.si_code = SI_KERNEL;
|
||||
si.si_pid = task_pid_vnr(current);
|
||||
si.si_uid = current->uid;
|
||||
si.si_uid = current_uid();
|
||||
si.si_addr = addr;
|
||||
force_sig_info(SIGSEGV, &si, current);
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue