mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 17:41:44 +00:00
Auto-update from upstream
This commit is contained in:
commit
60cfff3516
@ -423,7 +423,7 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
|
||||
ppc_md.find_end_of_memory = m8xx_find_end_of_memory;
|
||||
ppc_md.setup_io_mappings = m8xx_map_io;
|
||||
|
||||
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
|
||||
#if defined(CONFIG_BLK_DEV_MPC8xx_IDE)
|
||||
m8xx_ide_init();
|
||||
#endif
|
||||
}
|
||||
|
@ -1691,7 +1691,7 @@ int adm1026_detect(struct i2c_adapter *adapter, int address,
|
||||
|
||||
/* Error out and cleanup code */
|
||||
exitfree:
|
||||
kfree(new_client);
|
||||
kfree(data);
|
||||
exit:
|
||||
return err;
|
||||
}
|
||||
|
@ -834,7 +834,7 @@ static int adm1031_detect(struct i2c_adapter *adapter, int address, int kind)
|
||||
return 0;
|
||||
|
||||
exit_free:
|
||||
kfree(new_client);
|
||||
kfree(data);
|
||||
exit:
|
||||
return err;
|
||||
}
|
||||
|
@ -616,7 +616,7 @@ static int adm9240_detect(struct i2c_adapter *adapter, int address, int kind)
|
||||
|
||||
return 0;
|
||||
exit_free:
|
||||
kfree(new_client);
|
||||
kfree(data);
|
||||
exit:
|
||||
return err;
|
||||
}
|
||||
|
@ -167,7 +167,7 @@ static ssize_t set_temp_reset(struct i2c_client *client, struct fscpos_data
|
||||
"experience to the module author.\n");
|
||||
|
||||
/* Supported value: 2 (clears the status) */
|
||||
fscpos_write_value(client, FSCPOS_REG_TEMP_STATE[nr], 2);
|
||||
fscpos_write_value(client, FSCPOS_REG_TEMP_STATE[nr - 1], 2);
|
||||
return count;
|
||||
}
|
||||
|
||||
|
@ -298,7 +298,7 @@ static int smsc47b397_detect(struct i2c_adapter *adapter, int addr, int kind)
|
||||
return 0;
|
||||
|
||||
error_free:
|
||||
kfree(new_client);
|
||||
kfree(data);
|
||||
error_release:
|
||||
release_region(addr, SMSC_EXTENT);
|
||||
return err;
|
||||
|
@ -495,7 +495,7 @@ static int smsc47m1_detect(struct i2c_adapter *adapter, int address, int kind)
|
||||
return 0;
|
||||
|
||||
error_free:
|
||||
kfree(new_client);
|
||||
kfree(data);
|
||||
error_release:
|
||||
release_region(address, SMSC_EXTENT);
|
||||
return err;
|
||||
|
@ -478,7 +478,6 @@ static void ohci_initialize(struct ti_ohci *ohci)
|
||||
int num_ports, i;
|
||||
|
||||
spin_lock_init(&ohci->phy_reg_lock);
|
||||
spin_lock_init(&ohci->event_lock);
|
||||
|
||||
/* Put some defaults to these undefined bus options */
|
||||
buf = reg_read(ohci, OHCI1394_BusOptions);
|
||||
@ -3402,7 +3401,14 @@ static int __devinit ohci1394_pci_probe(struct pci_dev *dev,
|
||||
/* We hopefully don't have to pre-allocate IT DMA like we did
|
||||
* for IR DMA above. Allocate it on-demand and mark inactive. */
|
||||
ohci->it_legacy_context.ohci = NULL;
|
||||
spin_lock_init(&ohci->event_lock);
|
||||
|
||||
/*
|
||||
* interrupts are disabled, all right, but... due to SA_SHIRQ we
|
||||
* might get called anyway. We'll see no event, of course, but
|
||||
* we need to get to that "no event", so enough should be initialized
|
||||
* by that point.
|
||||
*/
|
||||
if (request_irq(dev->irq, ohci_irq_handler, SA_SHIRQ,
|
||||
OHCI1394_DRIVER_NAME, ohci))
|
||||
FAIL(-ENOMEM, "Failed to allocate shared interrupt %d", dev->irq);
|
||||
|
@ -1253,7 +1253,7 @@ static int emac_init_tah(struct ocp_enet_private *fep)
|
||||
TAH_MR_CVR | TAH_MR_ST_768 | TAH_MR_TFS_10KB | TAH_MR_DTFP |
|
||||
TAH_MR_DIG);
|
||||
|
||||
iounmap(&tahp);
|
||||
iounmap(tahp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -66,8 +66,8 @@
|
||||
|
||||
#define DRV_MODULE_NAME "tg3"
|
||||
#define PFX DRV_MODULE_NAME ": "
|
||||
#define DRV_MODULE_VERSION "3.36"
|
||||
#define DRV_MODULE_RELDATE "August 19, 2005"
|
||||
#define DRV_MODULE_VERSION "3.37"
|
||||
#define DRV_MODULE_RELDATE "August 25, 2005"
|
||||
|
||||
#define TG3_DEF_MAC_MODE 0
|
||||
#define TG3_DEF_RX_MODE 0
|
||||
@ -7865,8 +7865,6 @@ static int tg3_test_loopback(struct tg3 *tp)
|
||||
|
||||
err = -EIO;
|
||||
|
||||
tg3_abort_hw(tp, 1);
|
||||
|
||||
tg3_reset_hw(tp);
|
||||
|
||||
mac_mode = (tp->mac_mode & ~MAC_MODE_PORT_MODE_MASK) |
|
||||
|
@ -40,7 +40,7 @@
|
||||
* FIXME: IO should be max 256 bytes. However, since we may
|
||||
* have a P2P bridge below a cardbus bridge, we need 4K.
|
||||
*/
|
||||
#define CARDBUS_IO_SIZE (4096)
|
||||
#define CARDBUS_IO_SIZE (256)
|
||||
#define CARDBUS_MEM_SIZE (32*1024*1024)
|
||||
|
||||
static void __devinit
|
||||
|
@ -53,7 +53,9 @@ pci_update_resource(struct pci_dev *dev, struct resource *res, int resno)
|
||||
if (resno < 6) {
|
||||
reg = PCI_BASE_ADDRESS_0 + 4 * resno;
|
||||
} else if (resno == PCI_ROM_RESOURCE) {
|
||||
new |= res->flags & IORESOURCE_ROM_ENABLE;
|
||||
if (!(res->flags & IORESOURCE_ROM_ENABLE))
|
||||
return;
|
||||
new |= PCI_ROM_ADDRESS_ENABLE;
|
||||
reg = dev->rom_base_reg;
|
||||
} else {
|
||||
/* Hmm, non-standard resource. */
|
||||
|
@ -112,7 +112,7 @@ qdio_min(int a,int b)
|
||||
|
||||
/***************** SCRUBBER HELPER ROUTINES **********************/
|
||||
|
||||
static inline volatile __u64
|
||||
static inline __u64
|
||||
qdio_get_micros(void)
|
||||
{
|
||||
return (get_clock() >> 10); /* time>>12 is microseconds */
|
||||
|
@ -643,7 +643,7 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
|
||||
netfid, length,
|
||||
pfLock->fl_start, numUnlock, numLock, lockType,
|
||||
wait_flag);
|
||||
if (rc == 0 && (pfLock->fl_flags & FL_POSIX))
|
||||
if (pfLock->fl_flags & FL_POSIX)
|
||||
posix_lock_file_wait(file, pfLock);
|
||||
FreeXid(xid);
|
||||
return rc;
|
||||
|
@ -38,7 +38,7 @@ struct hppfs_inode_info {
|
||||
|
||||
static inline struct hppfs_inode_info *HPPFS_I(struct inode *inode)
|
||||
{
|
||||
return(list_entry(inode, struct hppfs_inode_info, vfs_inode));
|
||||
return container_of(inode, struct hppfs_inode_info, vfs_inode);
|
||||
}
|
||||
|
||||
#define HPPFS_SUPER_MAGIC 0xb00000ee
|
||||
@ -662,42 +662,36 @@ static int hppfs_readlink(struct dentry *dentry, char *buffer, int buflen)
|
||||
{
|
||||
struct file *proc_file;
|
||||
struct dentry *proc_dentry;
|
||||
int (*readlink)(struct dentry *, char *, int);
|
||||
int err, n;
|
||||
int ret;
|
||||
|
||||
proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;
|
||||
proc_file = dentry_open(dget(proc_dentry), NULL, O_RDONLY);
|
||||
err = PTR_ERR(proc_dentry);
|
||||
if(IS_ERR(proc_dentry))
|
||||
return(err);
|
||||
if (IS_ERR(proc_file))
|
||||
return PTR_ERR(proc_file);
|
||||
|
||||
readlink = proc_dentry->d_inode->i_op->readlink;
|
||||
n = (*readlink)(proc_dentry, buffer, buflen);
|
||||
ret = proc_dentry->d_inode->i_op->readlink(proc_dentry, buffer, buflen);
|
||||
|
||||
fput(proc_file);
|
||||
|
||||
return(n);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int hppfs_follow_link(struct dentry *dentry, struct nameidata *nd)
|
||||
static void* hppfs_follow_link(struct dentry *dentry, struct nameidata *nd)
|
||||
{
|
||||
struct file *proc_file;
|
||||
struct dentry *proc_dentry;
|
||||
int (*follow_link)(struct dentry *, struct nameidata *);
|
||||
int err, n;
|
||||
void *ret;
|
||||
|
||||
proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;
|
||||
proc_file = dentry_open(dget(proc_dentry), NULL, O_RDONLY);
|
||||
err = PTR_ERR(proc_dentry);
|
||||
if(IS_ERR(proc_dentry))
|
||||
return(err);
|
||||
if (IS_ERR(proc_file))
|
||||
return proc_file;
|
||||
|
||||
follow_link = proc_dentry->d_inode->i_op->follow_link;
|
||||
n = (*follow_link)(proc_dentry, nd);
|
||||
ret = proc_dentry->d_inode->i_op->follow_link(proc_dentry, nd);
|
||||
|
||||
fput(proc_file);
|
||||
|
||||
return(n);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct inode_operations hppfs_dir_iops = {
|
||||
|
@ -353,7 +353,7 @@ static int inotify_dev_get_wd(struct inotify_device *dev,
|
||||
do {
|
||||
if (unlikely(!idr_pre_get(&dev->idr, GFP_KERNEL)))
|
||||
return -ENOSPC;
|
||||
ret = idr_get_new_above(&dev->idr, watch, dev->last_wd, &watch->wd);
|
||||
ret = idr_get_new_above(&dev->idr, watch, dev->last_wd+1, &watch->wd);
|
||||
} while (ret == -EAGAIN);
|
||||
|
||||
return ret;
|
||||
|
@ -627,6 +627,14 @@ static int validate_change(const struct cpuset *cur, const struct cpuset *trial)
|
||||
* Call with cpuset_sem held. May nest a call to the
|
||||
* lock_cpu_hotplug()/unlock_cpu_hotplug() pair.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Hack to avoid 2.6.13 partial node dynamic sched domain bug.
|
||||
* Disable letting 'cpu_exclusive' cpusets define dynamic sched
|
||||
* domains, until the sched domain can handle partial nodes.
|
||||
* Remove this #if hackery when sched domains fixed.
|
||||
*/
|
||||
#if 0
|
||||
static void update_cpu_domains(struct cpuset *cur)
|
||||
{
|
||||
struct cpuset *c, *par = cur->parent;
|
||||
@ -635,25 +643,6 @@ static void update_cpu_domains(struct cpuset *cur)
|
||||
if (par == NULL || cpus_empty(cur->cpus_allowed))
|
||||
return;
|
||||
|
||||
/*
|
||||
* Hack to avoid 2.6.13 partial node dynamic sched domain bug.
|
||||
* Require the 'cpu_exclusive' cpuset to include all (or none)
|
||||
* of the CPUs on each node, or return w/o changing sched domains.
|
||||
* Remove this hack when dynamic sched domains fixed.
|
||||
*/
|
||||
{
|
||||
int i, j;
|
||||
|
||||
for_each_cpu_mask(i, cur->cpus_allowed) {
|
||||
cpumask_t mask = node_to_cpumask(cpu_to_node(i));
|
||||
|
||||
for_each_cpu_mask(j, mask) {
|
||||
if (!cpu_isset(j, cur->cpus_allowed))
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get all cpus from parent's cpus_allowed not part of exclusive
|
||||
* children
|
||||
@ -686,6 +675,11 @@ static void update_cpu_domains(struct cpuset *cur)
|
||||
partition_sched_domains(&pspan, &cspan);
|
||||
unlock_cpu_hotplug();
|
||||
}
|
||||
#else
|
||||
static void update_cpu_domains(struct cpuset *cur)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
static int update_cpumask(struct cpuset *cs, char *buf)
|
||||
{
|
||||
|
@ -207,7 +207,7 @@ build_up:
|
||||
}
|
||||
|
||||
/**
|
||||
* idr_get_new_above - allocate new idr entry above a start id
|
||||
* idr_get_new_above - allocate new idr entry above or equal to a start id
|
||||
* @idp: idr handle
|
||||
* @ptr: pointer you want associated with the ide
|
||||
* @start_id: id to start search at
|
||||
|
@ -1333,9 +1333,9 @@ err:;
|
||||
}
|
||||
|
||||
static inline int check_leaf(struct trie *t, struct leaf *l, t_key key, int *plen, const struct flowi *flp,
|
||||
struct fib_result *res, int *err)
|
||||
struct fib_result *res)
|
||||
{
|
||||
int i;
|
||||
int err, i;
|
||||
t_key mask;
|
||||
struct leaf_info *li;
|
||||
struct hlist_head *hhead = &l->list;
|
||||
@ -1348,18 +1348,18 @@ static inline int check_leaf(struct trie *t, struct leaf *l, t_key key, int *pl
|
||||
if (l->key != (key & mask))
|
||||
continue;
|
||||
|
||||
if (((*err) = fib_semantic_match(&li->falh, flp, res, l->key, mask, i)) == 0) {
|
||||
if ((err = fib_semantic_match(&li->falh, flp, res, l->key, mask, i)) <= 0) {
|
||||
*plen = i;
|
||||
#ifdef CONFIG_IP_FIB_TRIE_STATS
|
||||
t->stats.semantic_match_passed++;
|
||||
#endif
|
||||
return 1;
|
||||
return err;
|
||||
}
|
||||
#ifdef CONFIG_IP_FIB_TRIE_STATS
|
||||
t->stats.semantic_match_miss++;
|
||||
#endif
|
||||
}
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
@ -1386,7 +1386,7 @@ fn_trie_lookup(struct fib_table *tb, const struct flowi *flp, struct fib_result
|
||||
|
||||
/* Just a leaf? */
|
||||
if (IS_LEAF(n)) {
|
||||
if (check_leaf(t, (struct leaf *)n, key, &plen, flp, res, &ret))
|
||||
if ((ret = check_leaf(t, (struct leaf *)n, key, &plen, flp, res)) <= 0)
|
||||
goto found;
|
||||
goto failed;
|
||||
}
|
||||
@ -1508,7 +1508,7 @@ fn_trie_lookup(struct fib_table *tb, const struct flowi *flp, struct fib_result
|
||||
continue;
|
||||
}
|
||||
if (IS_LEAF(n)) {
|
||||
if (check_leaf(t, (struct leaf *)n, key, &plen, flp, res, &ret))
|
||||
if ((ret = check_leaf(t, (struct leaf *)n, key, &plen, flp, res)) <= 0)
|
||||
goto found;
|
||||
}
|
||||
backtrace:
|
||||
|
Loading…
Reference in New Issue
Block a user