Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 40958
b: refs/heads/master
c: b342baa
h: refs/heads/master
v: v3
  • Loading branch information
Linus Torvalds committed Nov 16, 2006
1 parent e5cb803 commit 66bb3fd
Show file tree
Hide file tree
Showing 32 changed files with 92 additions and 31 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cea196bb2eb918c30f97a2b752bcec929d761f64
refs/heads/master: b342baa737164e86cc67d5f16a305d04895ef338
13 changes: 11 additions & 2 deletions trunk/Documentation/filesystems/udf.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,17 @@ If you encounter problems with reading UDF discs using this driver,
please report them to linux_udf@hpesjro.fc.hp.com, which is the
developer's list.

Write support requires a block driver which supports writing. The current
scsi and ide cdrom drivers do not support writing.
Write support requires a block driver which supports writing. Currently
dvd+rw drives and media support true random sector writes, and so a udf
filesystem on such devices can be directly mounted read/write. CD-RW
media however, does not support this. Instead the media can be formatted
for packet mode using the utility cdrwtool, then the pktcdvd driver can
be bound to the underlying cd device to provide the required buffering
and read-modify-write cycles to allow the filesystem random sector writes
while providing the hardware with only full packet writes. While not
required for dvd+rw media, use of the pktcdvd driver often enhances
performance due to very poor read-modify-write support supplied internally
by drive firmware.

-------------------------------------------------------------------------------
The following mount options are supported:
Expand Down
5 changes: 3 additions & 2 deletions trunk/Documentation/kprobes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -442,9 +442,10 @@ static int __init kprobe_init(void)
kp.fault_handler = handler_fault;
kp.symbol_name = "do_fork";

if ((ret = register_kprobe(&kp) < 0)) {
ret = register_kprobe(&kp);
if (ret < 0) {
printk("register_kprobe failed, returned %d\n", ret);
return -1;
return ret;
}
printk("kprobe registered\n");
return 0;
Expand Down
2 changes: 1 addition & 1 deletion trunk/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 19
EXTRAVERSION =-rc5
EXTRAVERSION =-rc6
NAME=Avast! A bilge rat!

# *DOCUMENTATION*
Expand Down
3 changes: 1 addition & 2 deletions trunk/block/scsi_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -286,9 +286,8 @@ static int sg_io(struct file *file, request_queue_t *q,
* fill in request structure
*/
rq->cmd_len = hdr->cmd_len;
memset(rq->cmd, 0, BLK_MAX_CDB); /* ATAPI hates garbage after CDB */
memcpy(rq->cmd, cmd, hdr->cmd_len);
if (sizeof(rq->cmd) != hdr->cmd_len)
memset(rq->cmd + hdr->cmd_len, 0, sizeof(rq->cmd) - hdr->cmd_len);

memset(sense, 0, sizeof(sense));
rq->sense = sense;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/char/ipmi/ipmi_msghandler.c
Original file line number Diff line number Diff line change
Expand Up @@ -2118,7 +2118,7 @@ static int ipmi_bmc_register(ipmi_smi_t intf)
dev_set_drvdata(&bmc->dev->dev, bmc);
kref_init(&bmc->refcount);

rv = platform_device_register(bmc->dev);
rv = platform_device_add(bmc->dev);
mutex_unlock(&ipmidriver_mutex);
if (rv) {
printk(KERN_ERR
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/char/ipmi/ipmi_si_intf.c
Original file line number Diff line number Diff line change
Expand Up @@ -2346,7 +2346,7 @@ static int try_smi_init(struct smi_info *new_smi)
new_smi->dev = &new_smi->pdev->dev;
new_smi->dev->driver = &ipmi_driver;

rv = platform_device_register(new_smi->pdev);
rv = platform_device_add(new_smi->pdev);
if (rv) {
printk(KERN_ERR
"ipmi_si_intf:"
Expand Down
9 changes: 4 additions & 5 deletions trunk/drivers/firmware/dell_rbu.c
Original file line number Diff line number Diff line change
Expand Up @@ -705,17 +705,16 @@ static struct bin_attribute rbu_packet_size_attr = {

static int __init dcdrbu_init(void)
{
int rc = 0;
int rc;
spin_lock_init(&rbu_data.lock);

init_packet_head();
rbu_device =
platform_device_register_simple("dell_rbu", -1, NULL, 0);
if (!rbu_device) {
rbu_device = platform_device_register_simple("dell_rbu", -1, NULL, 0);
if (IS_ERR(rbu_device)) {
printk(KERN_ERR
"dell_rbu:%s:platform_device_register_simple "
"failed\n", __FUNCTION__);
return -EIO;
return PTR_ERR(rbu_device);
}

rc = sysfs_create_bin_file(&rbu_device->dev.kobj, &rbu_data_attr);
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/infiniband/hw/ipath/Kconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
config INFINIBAND_IPATH
tristate "QLogic InfiniPath Driver"
depends on PCI_MSI && 64BIT && INFINIBAND
depends on (PCI_MSI || HT_IRQ) && 64BIT && INFINIBAND
---help---
This is a driver for QLogic InfiniPath host channel adapters,
including InfiniBand verbs support. This driver allows these
Expand Down
5 changes: 3 additions & 2 deletions trunk/drivers/infiniband/hw/ipath/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ ib_ipath-y := \
ipath_eeprom.o \
ipath_file_ops.o \
ipath_fs.o \
ipath_iba6110.o \
ipath_iba6120.o \
ipath_init_chip.o \
ipath_intr.o \
ipath_keys.o \
Expand All @@ -31,5 +29,8 @@ ib_ipath-y := \
ipath_verbs_mcast.o \
ipath_verbs.o

ib_ipath-$(CONFIG_HT_IRQ) += ipath_iba6110.o
ib_ipath-$(CONFIG_PCI_MSI) += ipath_iba6120.o

ib_ipath-$(CONFIG_X86_64) += ipath_wc_x86_64.o
ib_ipath-$(CONFIG_PPC64) += ipath_wc_ppc64.o
4 changes: 4 additions & 0 deletions trunk/drivers/infiniband/hw/ipath/ipath_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -390,12 +390,16 @@ static int __devinit ipath_init_one(struct pci_dev *pdev,

/* setup the chip-specific functions, as early as possible. */
switch (ent->device) {
#ifdef CONFIG_HT_IRQ
case PCI_DEVICE_ID_INFINIPATH_HT:
ipath_init_iba6110_funcs(dd);
break;
#endif
#ifdef CONFIG_PCI_MSI
case PCI_DEVICE_ID_INFINIPATH_PE800:
ipath_init_iba6120_funcs(dd);
break;
#endif
default:
ipath_dev_err(dd, "Found unknown QLogic deviceid 0x%x, "
"failing\n", ent->device);
Expand Down
11 changes: 11 additions & 0 deletions trunk/drivers/macintosh/windfarm_pm112.c
Original file line number Diff line number Diff line change
Expand Up @@ -685,6 +685,17 @@ static int __init wf_pm112_init(void)
++nr_cores;

printk(KERN_INFO "windfarm: initializing for dual-core desktop G5\n");

#ifdef MODULE
request_module("windfarm_smu_controls");
request_module("windfarm_smu_sensors");
request_module("windfarm_smu_sat");
request_module("windfarm_lm75_sensor");
request_module("windfarm_max6690_sensor");
request_module("windfarm_cpufreq_clamp");

#endif /* MODULE */

platform_driver_register(&wf_pm112_driver);
return 0;
}
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/macintosh/windfarm_pm81.c
Original file line number Diff line number Diff line change
Expand Up @@ -788,6 +788,7 @@ static int __init wf_smu_init(void)
request_module("windfarm_smu_controls");
request_module("windfarm_smu_sensors");
request_module("windfarm_lm75_sensor");
request_module("windfarm_cpufreq_clamp");

#endif /* MODULE */
platform_driver_register(&wf_smu_driver);
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/macintosh/windfarm_pm91.c
Original file line number Diff line number Diff line change
Expand Up @@ -719,6 +719,7 @@ static int __init wf_smu_init(void)
request_module("windfarm_smu_controls");
request_module("windfarm_smu_sensors");
request_module("windfarm_lm75_sensor");
request_module("windfarm_cpufreq_clamp");

#endif /* MODULE */
platform_driver_register(&wf_smu_driver);
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/parport/parport_ip32.c
Original file line number Diff line number Diff line change
Expand Up @@ -780,7 +780,7 @@ static irqreturn_t parport_ip32_interrupt(int irq, void *dev_id)
enum parport_ip32_irq_mode irq_mode = priv->irq_mode;
switch (irq_mode) {
case PARPORT_IP32_IRQ_FWD:
parport_generic_irq(irq, p, regs);
parport_generic_irq(irq, p);
break;
case PARPORT_IP32_IRQ_HERE:
parport_ip32_wakeup(p);
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/scsi/scsi_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,7 @@ int scsi_execute_async(struct scsi_device *sdev, const unsigned char *cmd,
goto free_req;

req->cmd_len = cmd_len;
memset(req->cmd, 0, BLK_MAX_CDB); /* ATAPI hates garbage after CDB */
memcpy(req->cmd, cmd, req->cmd_len);
req->sense = sioc->sense;
req->sense_len = 0;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/video/aty/atyfb_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ static struct {
{ PCI_CHIP_MACH64LB, "3D RAGE LT PRO (Mach64 LB, AGP)", 236, 75, 100, 135, ATI_CHIP_264LTPRO },
{ PCI_CHIP_MACH64LD, "3D RAGE LT PRO (Mach64 LD, AGP)", 230, 100, 100, 135, ATI_CHIP_264LTPRO },
{ PCI_CHIP_MACH64LI, "3D RAGE LT PRO (Mach64 LI, PCI)", 230, 100, 100, 135, ATI_CHIP_264LTPRO | M64F_G3_PB_1_1 | M64F_G3_PB_1024x768 },
{ PCI_CHIP_MACH64LP, "3D RAGE LT PRO (Mach64 LP, PCI)", 230, 100, 100, 135, ATI_CHIP_264LTPRO },
{ PCI_CHIP_MACH64LP, "3D RAGE LT PRO (Mach64 LP, PCI)", 230, 100, 100, 135, ATI_CHIP_264LTPRO | M64F_G3_PB_1024x768 },
{ PCI_CHIP_MACH64LQ, "3D RAGE LT PRO (Mach64 LQ, PCI)", 230, 100, 100, 135, ATI_CHIP_264LTPRO },

{ PCI_CHIP_MACH64GM, "3D RAGE XL (Mach64 GM, AGP 2x)", 230, 83, 63, 135, ATI_CHIP_264XL },
Expand Down
5 changes: 3 additions & 2 deletions trunk/drivers/video/pnx4008/pnxrgbfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,8 @@ static int __devinit rgbfb_probe(struct platform_device *pdev)
goto err1;
}

if (!fb_get_options("pnxrgbfb", &option) && !strcmp(option, "nocursor"))
if (!fb_get_options("pnxrgbfb", &option) && option &&
!strcmp(option, "nocursor"))
rgbfb_ops.fb_cursor = no_cursor;

info->node = -1;
Expand Down Expand Up @@ -191,7 +192,7 @@ static int __devinit rgbfb_probe(struct platform_device *pdev)

static struct platform_driver rgbfb_driver = {
.driver = {
.name = "rgbfb",
.name = "pnx4008-rgbfb",
},
.probe = rgbfb_probe,
.remove = rgbfb_remove,
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/video/pnx4008/sdum.c
Original file line number Diff line number Diff line change
Expand Up @@ -848,7 +848,7 @@ static int sdum_remove(struct platform_device *pdev)

static struct platform_driver sdum_driver = {
.driver = {
.name = "sdum",
.name = "pnx4008-sdum",
},
.probe = sdum_probe,
.remove = sdum_remove,
Expand Down
3 changes: 1 addition & 2 deletions trunk/fs/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2060,8 +2060,7 @@ config CODA_FS_OLD_API
For most cases you probably want to say N.

config AFS_FS
# for fs/nls/Config.in
tristate "Andrew File System support (AFS) (Experimental)"
tristate "Andrew File System support (AFS) (EXPERIMENTAL)"
depends on INET && EXPERIMENTAL
select RXRPC
help
Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/ecryptfs/dentry.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,12 @@ static int ecryptfs_d_revalidate(struct dentry *dentry, struct nameidata *nd)
rc = lower_dentry->d_op->d_revalidate(lower_dentry, nd);
nd->dentry = dentry_save;
nd->mnt = vfsmount_save;
if (dentry->d_inode) {
struct inode *lower_inode =
ecryptfs_inode_to_lower(dentry->d_inode);

ecryptfs_copy_attr_all(dentry->d_inode, lower_inode);
}
out:
return rc;
}
Expand Down
5 changes: 4 additions & 1 deletion trunk/fs/ecryptfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,7 @@ static int ecryptfs_link(struct dentry *old_dentry, struct inode *dir,
unlock_dir(lower_dir_dentry);
dput(lower_new_dentry);
dput(lower_old_dentry);
d_drop(lower_old_dentry);
d_drop(new_dentry);
d_drop(old_dentry);
return rc;
Expand All @@ -484,7 +485,7 @@ static int ecryptfs_unlink(struct inode *dir, struct dentry *dentry)
lock_parent(lower_dentry);
rc = vfs_unlink(lower_dir_inode, lower_dentry);
if (rc) {
ecryptfs_printk(KERN_ERR, "Error in vfs_unlink\n");
printk(KERN_ERR "Error in vfs_unlink; rc = [%d]\n", rc);
goto out_unlock;
}
ecryptfs_copy_attr_times(dir, lower_dir_inode);
Expand Down Expand Up @@ -630,6 +631,8 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry,
ecryptfs_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode);
out_lock:
unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry);
dput(lower_new_dentry->d_parent);
dput(lower_old_dentry->d_parent);
dput(lower_new_dentry);
dput(lower_old_dentry);
return rc;
Expand Down
10 changes: 10 additions & 0 deletions trunk/fs/fat/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,17 @@ void fat_truncate(struct inode *inode)
fat_flush_inodes(inode->i_sb, inode, NULL);
}

int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
{
struct inode *inode = dentry->d_inode;
generic_fillattr(inode, stat);
stat->blksize = MSDOS_SB(inode->i_sb)->cluster_size;
return 0;
}
EXPORT_SYMBOL_GPL(fat_getattr);

struct inode_operations fat_file_inode_operations = {
.truncate = fat_truncate,
.setattr = fat_notify_change,
.getattr = fat_getattr,
};
2 changes: 2 additions & 0 deletions trunk/fs/hfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -390,11 +390,13 @@ static int hfs_fill_super(struct super_block *sb, void *data, int silent)
hfs_find_exit(&fd);
goto bail_no_root;
}
res = -EINVAL;
root_inode = hfs_iget(sb, &fd.search_key->cat, &rec);
hfs_find_exit(&fd);
if (!root_inode)
goto bail_no_root;

res = -ENOMEM;
sb->s_root = d_alloc_root(root_inode);
if (!sb->s_root)
goto bail_iput;
Expand Down
1 change: 1 addition & 0 deletions trunk/fs/msdos/namei.c
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,7 @@ static struct inode_operations msdos_dir_inode_operations = {
.rmdir = msdos_rmdir,
.rename = msdos_rename,
.setattr = fat_notify_change,
.getattr = fat_getattr,
};

static int msdos_fill_super(struct super_block *sb, void *data, int silent)
Expand Down
1 change: 1 addition & 0 deletions trunk/fs/vfat/namei.c
Original file line number Diff line number Diff line change
Expand Up @@ -1004,6 +1004,7 @@ static struct inode_operations vfat_dir_inode_operations = {
.rmdir = vfat_rmdir,
.rename = vfat_rename,
.setattr = fat_notify_change,
.getattr = fat_getattr,
};

static int vfat_fill_super(struct super_block *sb, void *data, int silent)
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-powerpc/systbl.h
Original file line number Diff line number Diff line change
Expand Up @@ -304,3 +304,4 @@ SYSCALL_SPU(fchmodat)
SYSCALL_SPU(faccessat)
COMPAT_SYS_SPU(get_robust_list)
COMPAT_SYS_SPU(set_robust_list)
COMPAT_SYS(move_pages)
8 changes: 7 additions & 1 deletion trunk/include/asm-powerpc/topology.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,13 @@ static inline void sysfs_remove_device_from_node(struct sys_device *dev,

#ifdef CONFIG_SMP
#include <asm/cputable.h>
#define smt_capable() (cpu_has_feature(CPU_FTR_SMT))
#define smt_capable() (cpu_has_feature(CPU_FTR_SMT))

#ifdef CONFIG_PPC64
#include <asm/smp.h>

#define topology_thread_siblings(cpu) (cpu_sibling_map[cpu])
#endif
#endif

#endif /* __KERNEL__ */
Expand Down
3 changes: 2 additions & 1 deletion trunk/include/asm-powerpc/unistd.h
Original file line number Diff line number Diff line change
Expand Up @@ -323,10 +323,11 @@
#define __NR_faccessat 298
#define __NR_get_robust_list 299
#define __NR_set_robust_list 300
#define __NR_move_pages 301

#ifdef __KERNEL__

#define __NR_syscalls 301
#define __NR_syscalls 302

#define __NR__exit __NR_exit
#define NR_syscalls __NR_syscalls
Expand Down
2 changes: 2 additions & 0 deletions trunk/include/linux/msdos_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,8 @@ extern const struct file_operations fat_file_operations;
extern struct inode_operations fat_file_inode_operations;
extern int fat_notify_change(struct dentry * dentry, struct iattr * attr);
extern void fat_truncate(struct inode *inode);
extern int fat_getattr(struct vfsmount *mnt, struct dentry *dentry,
struct kstat *stat);

/* fat/inode.c */
extern void fat_attach(struct inode *inode, loff_t i_pos);
Expand Down
2 changes: 2 additions & 0 deletions trunk/kernel/irq/chip.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,8 @@ void irq_chip_set_defaults(struct irq_chip *chip)
chip->shutdown = chip->disable;
if (!chip->name)
chip->name = chip->typename;
if (!chip->end)
chip->end = dummy_irq_chip.end;
}

static inline void mask_ack_irq(struct irq_desc *desc, int irq)
Expand Down
5 changes: 2 additions & 3 deletions trunk/mm/vmalloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,14 +181,13 @@ static struct vm_struct *__get_vm_area_node(unsigned long size, unsigned long fl
}
addr = ALIGN(start, align);
size = PAGE_ALIGN(size);
if (unlikely(!size))
return NULL;

area = kmalloc_node(sizeof(*area), gfp_mask & GFP_LEVEL_MASK, node);
if (unlikely(!area))
return NULL;

if (unlikely(!size))
return NULL;

/*
* We always allocate a guard page.
*/
Expand Down

0 comments on commit 66bb3fd

Please sign in to comment.