···2423S: Canada24242425N: Zwane Mwaikambo2426-E: zwane@linuxpower.ca2427-W: http://function.linuxpower.ca2428D: Various driver hacking2429D: Lowlevel x86 kernel hacking2430D: General debugging
···2423S: Canada24242425N: Zwane Mwaikambo2426+E: zwane@arm.linux.org.uk02427D: Various driver hacking2428D: Lowlevel x86 kernel hacking2429D: General debugging
+2-2
MAINTAINERS
···17391740OPL3-SA2, SA3, and SAx DRIVER1741P: Zwane Mwaikambo1742-M: zwane@commfireservices.com1743L: linux-sound@vger.kernel.org1744S: Maintained1745···19951996SC1200 WDT DRIVER1997P: Zwane Mwaikambo1998-M: zwane@commfireservices.com1999S: Maintained20002001SCHEDULER
···17391740OPL3-SA2, SA3, and SAx DRIVER1741P: Zwane Mwaikambo1742+M: zwane@arm.linux.org.uk1743L: linux-sound@vger.kernel.org1744S: Maintained1745···19951996SC1200 WDT DRIVER1997P: Zwane Mwaikambo1998+M: zwane@arm.linux.org.uk1999S: Maintained20002001SCHEDULER
-4
arch/i386/kernel/apic.c
···726static int __init detect_init_APIC (void)727{728 u32 h, l, features;729- extern void get_cpu_vendor(struct cpuinfo_x86*);730731 /* Disabled by kernel option? */732 if (enable_local_apic < 0)733 return -1;734-735- /* Workaround for us being called before identify_cpu(). */736- get_cpu_vendor(&boot_cpu_data);737738 switch (boot_cpu_data.x86_vendor) {739 case X86_VENDOR_AMD:
···726static int __init detect_init_APIC (void)727{728 u32 h, l, features;0729730 /* Disabled by kernel option? */731 if (enable_local_apic < 0)732 return -1;000733734 switch (boot_cpu_data.x86_vendor) {735 case X86_VENDOR_AMD:
+2-2
arch/i386/kernel/nmi.c
···195 wrmsr(MSR_P6_EVNTSEL0, 0, 0);196 break;197 case 15:198- if (boot_cpu_data.x86_model > 0x3)199 break;200201 wrmsr(MSR_P4_IQ_CCCR0, 0, 0);···432 setup_p6_watchdog();433 break;434 case 15:435- if (boot_cpu_data.x86_model > 0x3)436 return;437438 if (!setup_p4_watchdog())
···195 wrmsr(MSR_P6_EVNTSEL0, 0, 0);196 break;197 case 15:198+ if (boot_cpu_data.x86_model > 0x4)199 break;200201 wrmsr(MSR_P4_IQ_CCCR0, 0, 0);···432 setup_p6_watchdog();433 break;434 case 15:435+ if (boot_cpu_data.x86_model > 0x4)436 return;437438 if (!setup_p4_watchdog())
+7-3
arch/ppc/syslib/ppc4xx_dma.c
···620 return DMA_STATUS_GOOD;621}6220623/*624 * Enables the burst on the channel (BTEN bit in the control/count register)625 * Note:···686 return DMA_STATUS_GOOD;687}68800000689EXPORT_SYMBOL(ppc4xx_init_dma_channel);690EXPORT_SYMBOL(ppc4xx_get_channel_config);691EXPORT_SYMBOL(ppc4xx_set_channel_priority);···709EXPORT_SYMBOL(ppc4xx_disable_dma_interrupt);710EXPORT_SYMBOL(ppc4xx_get_dma_status);711EXPORT_SYMBOL(ppc4xx_clr_dma_status);712-EXPORT_SYMBOL(ppc4xx_enable_burst);713-EXPORT_SYMBOL(ppc4xx_disable_burst);714-EXPORT_SYMBOL(ppc4xx_set_burst_size);
···620 return DMA_STATUS_GOOD;621}622623+#ifdef CONFIG_PPC4xx_EDMA624/*625 * Enables the burst on the channel (BTEN bit in the control/count register)626 * Note:···685 return DMA_STATUS_GOOD;686}687688+EXPORT_SYMBOL(ppc4xx_enable_burst);689+EXPORT_SYMBOL(ppc4xx_disable_burst);690+EXPORT_SYMBOL(ppc4xx_set_burst_size);691+#endif /* CONFIG_PPC4xx_EDMA */692+693EXPORT_SYMBOL(ppc4xx_init_dma_channel);694EXPORT_SYMBOL(ppc4xx_get_channel_config);695EXPORT_SYMBOL(ppc4xx_set_channel_priority);···703EXPORT_SYMBOL(ppc4xx_disable_dma_interrupt);704EXPORT_SYMBOL(ppc4xx_get_dma_status);705EXPORT_SYMBOL(ppc4xx_clr_dma_status);706+00
+5
arch/sh/kernel/entry.S
···1145 .long sys_add_key /* 285 */1146 .long sys_request_key1147 .long sys_keyctl0000011481149/* End of entry.S */
···492 */493 set_cpu_sibling_map(smp_processor_id());49400000000495 /*496 * We need to hold call_lock, so there is no inconsistency497 * between the time smp_call_function() determines number of···516 cpu_set(smp_processor_id(), cpu_online_map);517 per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;518 unlock_ipi_call_lock();519-520- mb();521-522- /* Wait for TSC sync to not schedule things before.523- We still process interrupts, which could see an inconsistent524- time in that window unfortunately. */525- tsc_sync_wait();526527 cpu_idle();528}
···492 */493 set_cpu_sibling_map(smp_processor_id());494495+ /* 496+ * Wait for TSC sync to not schedule things before.497+ * We still process interrupts, which could see an inconsistent498+ * time in that window unfortunately. 499+ * Do this here because TSC sync has global unprotected state.500+ */501+ tsc_sync_wait();502+503 /*504 * We need to hold call_lock, so there is no inconsistency505 * between the time smp_call_function() determines number of···508 cpu_set(smp_processor_id(), cpu_online_map);509 per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;510 unlock_ipi_call_lock();0000000511512 cpu_idle();513}
+1-3
arch/x86_64/mm/fault.c
···211{212 if (tsk->pid == 1)213 return 1;214- /* Warn for strace, but not for gdb */215- if (!test_ti_thread_flag(tsk->thread_info, TIF_SYSCALL_TRACE) &&216- (tsk->ptrace & PT_PTRACED))217 return 0;218 return (tsk->sighand->action[sig-1].sa.sa_handler == SIG_IGN) ||219 (tsk->sighand->action[sig-1].sa.sa_handler == SIG_DFL);
···764config BLK_DEV_IDEDMA_PMAC765 bool "PowerMac IDE DMA support"766 depends on BLK_DEV_IDE_PMAC0767 help768 This option allows the driver for the built-in IDE controller on769 Power Macintoshes and PowerBooks to use DMA (direct memory access)
···764config BLK_DEV_IDEDMA_PMAC765 bool "PowerMac IDE DMA support"766 depends on BLK_DEV_IDE_PMAC767+ select BLK_DEV_IDEDMA_PCI768 help769 This option allows the driver for the built-in IDE controller on770 Power Macintoshes and PowerBooks to use DMA (direct memory access)
+1-1
drivers/ide/ide-floppy.c
···317 unsigned long flags;318} idefloppy_floppy_t;319320-#define IDEFLOPPY_TICKS_DELAY 3 /* default delay for ZIP 100 */321322/*323 * Floppy flag bits values.
···317 unsigned long flags;318} idefloppy_floppy_t;319320+#define IDEFLOPPY_TICKS_DELAY HZ/20 /* default delay for ZIP 100 (50ms) */321322/*323 * Floppy flag bits values.
+7
drivers/ide/pci/generic.c
···173 .channels = 2,174 .autodma = NOAUTODMA,175 .bootable = ON_BOARD,000000176 }177};178···237 { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11},238 { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12},239 { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13},0240 /* Must come last. If you add entries adjust this table appropriately and the init_one code */241 { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0},242 { 0, },
···214 .ethtool_ops = &loopback_ethtool_ops,215};216217-/* Setup and register the of the LOOPBACK device. */218int __init loopback_init(void)219{220 struct net_device_stats *stats;
···214 .ethtool_ops = &loopback_ethtool_ops,215};216217+/* Setup and register the loopback device. */218int __init loopback_init(void)219{220 struct net_device_stats *stats;
+4-2
drivers/net/tg3.c
···6667#define DRV_MODULE_NAME "tg3"68#define PFX DRV_MODULE_NAME ": "69-#define DRV_MODULE_VERSION "3.35"70-#define DRV_MODULE_RELDATE "August 6, 2005"7172#define TG3_DEF_MAC_MODE 073#define TG3_DEF_RX_MODE 0···8970 tp->phy_id = hw_phy_id;8971 if (hw_phy_id_masked == PHY_ID_BCM8002)8972 tp->tg3_flags2 |= TG3_FLG2_PHY_SERDES;008973 } else {8974 if (tp->phy_id != PHY_ID_INVALID) {8975 /* Do nothing, phy ID already set up in
···6667#define DRV_MODULE_NAME "tg3"68#define PFX DRV_MODULE_NAME ": "69+#define DRV_MODULE_VERSION "3.36"70+#define DRV_MODULE_RELDATE "August 19, 2005"7172#define TG3_DEF_MAC_MODE 073#define TG3_DEF_RX_MODE 0···8970 tp->phy_id = hw_phy_id;8971 if (hw_phy_id_masked == PHY_ID_BCM8002)8972 tp->tg3_flags2 |= TG3_FLG2_PHY_SERDES;8973+ else8974+ tp->tg3_flags2 &= ~TG3_FLG2_PHY_SERDES;8975 } else {8976 if (tp->phy_id != PHY_ID_INVALID) {8977 /* Do nothing, phy ID already set up in
···6263 break;64 case IOPRIO_CLASS_IDLE:0065 break;66 default:67 return -EINVAL;
···6263 break;64 case IOPRIO_CLASS_IDLE:65+ if (!capable(CAP_SYS_ADMIN))66+ return -EPERM;67 break;68 default:69 return -EINVAL;
+9-7
fs/jffs2/symlink.c
···18#include <linux/namei.h>19#include "nodelist.h"2021-static int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd);2223struct inode_operations jffs2_symlink_inode_operations =24{ ···27 .setattr = jffs2_setattr28};2930-static int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd)31{32 struct jffs2_inode_info *f = JFFS2_INODE_INFO(dentry->d_inode);03334 /*35 * We don't acquire the f->sem mutex here since the only data we···46 * nd_set_link() call.47 */4849- if (!f->dents) {50 printk(KERN_ERR "jffs2_follow_link(): can't find symlink taerget\n");51- return -EIO;0052 }53- D1(printk(KERN_DEBUG "jffs2_follow_link(): target path is '%s'\n", (char *) f->dents));5455- nd_set_link(nd, (char *)f->dents);5657 /*58 * We unlock the f->sem mutex but VFS will use the f->dents string. This is safe59 * since the only way that may cause f->dents to be changed is iput() operation.60 * But VFS will not use f->dents after iput() has been called.61 */62- return 0;63}64
···18#include <linux/namei.h>19#include "nodelist.h"2021+static void *jffs2_follow_link(struct dentry *dentry, struct nameidata *nd);2223struct inode_operations jffs2_symlink_inode_operations =24{ ···27 .setattr = jffs2_setattr28};2930+static void *jffs2_follow_link(struct dentry *dentry, struct nameidata *nd)31{32 struct jffs2_inode_info *f = JFFS2_INODE_INFO(dentry->d_inode);33+ char *p = (char *)f->dents;3435 /*36 * We don't acquire the f->sem mutex here since the only data we···45 * nd_set_link() call.46 */4748+ if (!p) {49 printk(KERN_ERR "jffs2_follow_link(): can't find symlink taerget\n");50+ p = ERR_PTR(-EIO);51+ } else {52+ D1(printk(KERN_DEBUG "jffs2_follow_link(): target path is '%s'\n", (char *) f->dents));53 }05455+ nd_set_link(nd, p);5657 /*58 * We unlock the f->sem mutex but VFS will use the f->dents string. This is safe59 * since the only way that may cause f->dents to be changed is iput() operation.60 * But VFS will not use f->dents after iput() has been called.61 */62+ return NULL;63}64
···1985 * iput doesn't deadlock in reiserfs_delete_xattrs. The locking1986 * code really needs to be reworked, but this will take care of it1987 * for now. -jeffm */1988- if (REISERFS_I(dir)->i_acl_default) {1989 reiserfs_write_unlock_xattrs(dir->i_sb);1990 iput(inode);1991 reiserfs_write_lock_xattrs(dir->i_sb);
···1985 * iput doesn't deadlock in reiserfs_delete_xattrs. The locking1986 * code really needs to be reworked, but this will take care of it1987 * for now. -jeffm */1988+ if (REISERFS_I(dir)->i_acl_default && !IS_ERR(REISERFS_I(dir)->i_acl_default)) {1989 reiserfs_write_unlock_xattrs(dir->i_sb);1990 iput(inode);1991 reiserfs_write_lock_xattrs(dir->i_sb);
···374 * we need to be very careful about how much stack we use.375 * uio is kmalloced for this reason...376 */377-STATIC int378linvfs_follow_link(379 struct dentry *dentry,380 struct nameidata *nd)···391 link = (char *)kmalloc(MAXNAMELEN+1, GFP_KERNEL);392 if (!link) {393 nd_set_link(nd, ERR_PTR(-ENOMEM));394- return 0;395 }396397 uio = (uio_t *)kmalloc(sizeof(uio_t), GFP_KERNEL);398 if (!uio) {399 kfree(link);400 nd_set_link(nd, ERR_PTR(-ENOMEM));401- return 0;402 }403404 vp = LINVFS_GET_VP(dentry->d_inode);···422 kfree(uio);423424 nd_set_link(nd, link);425- return 0;426}427428-static void linvfs_put_link(struct dentry *dentry, struct nameidata *nd)429{430 char *s = nd_get_link(nd);431 if (!IS_ERR(s))
···374 * we need to be very careful about how much stack we use.375 * uio is kmalloced for this reason...376 */377+STATIC void *378linvfs_follow_link(379 struct dentry *dentry,380 struct nameidata *nd)···391 link = (char *)kmalloc(MAXNAMELEN+1, GFP_KERNEL);392 if (!link) {393 nd_set_link(nd, ERR_PTR(-ENOMEM));394+ return NULL;395 }396397 uio = (uio_t *)kmalloc(sizeof(uio_t), GFP_KERNEL);398 if (!uio) {399 kfree(link);400 nd_set_link(nd, ERR_PTR(-ENOMEM));401+ return NULL;402 }403404 vp = LINVFS_GET_VP(dentry->d_inode);···422 kfree(uio);423424 nd_set_link(nd, link);425+ return NULL;426}427428+static void linvfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)429{430 char *s = nd_get_link(nd);431 if (!IS_ERR(s))
···295#define __NR_add_key 285296#define __NR_request_key 286297#define __NR_keyctl 28700000298299-#define NR_syscalls 2880300301/* user-visible error numbers are in the range -1 - -124: see <asm-sh/errno.h> */302
···295#define __NR_add_key 285296#define __NR_request_key 286297#define __NR_keyctl 287298+#define __NR_ioprio_set 288299+#define __NR_ioprio_get 289300+#define __NR_inotify_init 290301+#define __NR_inotify_add_watch 291302+#define __NR_inotify_rm_watch 292303304+305+#define NR_syscalls 293306307/* user-visible error numbers are in the range -1 - -124: see <asm-sh/errno.h> */308
+6-1
include/asm-sh64/unistd.h
···338#define __NR_add_key 313339#define __NR_request_key 314340#define __NR_keyctl 31500000341342-#define NR_syscalls 316343344/* user-visible error numbers are in the range -1 - -125: see <asm-sh64/errno.h> */345
···338#define __NR_add_key 313339#define __NR_request_key 314340#define __NR_keyctl 315341+#define __NR_ioprio_set 316342+#define __NR_ioprio_get 317343+#define __NR_inotify_init 318344+#define __NR_inotify_add_watch 319345+#define __NR_inotify_rm_watch 320346347+#define NR_syscalls 321348349/* user-visible error numbers are in the range -1 - -125: see <asm-sh64/errno.h> */350
+5
include/asm-sparc64/thread_info.h
···6869 struct restart_block restart_block;7000071 unsigned long fpregs[0] __attribute__ ((aligned(64)));72};73···106#define TI_PCR 0x00000490107#define TI_CEE_STUFF 0x00000498108#define TI_RESTART_BLOCK 0x000004a000109#define TI_FPREGS 0x00000500110111/* We embed this in the uppermost byte of thread_info->flags */
···6869 struct restart_block restart_block;7071+ struct pt_regs *kern_una_regs;72+ unsigned int kern_una_insn;73+74 unsigned long fpregs[0] __attribute__ ((aligned(64)));75};76···103#define TI_PCR 0x00000490104#define TI_CEE_STUFF 0x00000498105#define TI_RESTART_BLOCK 0x000004a0106+#define TI_KUNA_REGS 0x000004c8107+#define TI_KUNA_INSN 0x000004d0108#define TI_FPREGS 0x00000500109110/* We embed this in the uppermost byte of thread_info->flags */
···358 int cpu;359360 /* This can be any valid CPU ID so we don't need locking. */361- cpu = smp_processor_id();362363 list_for_each_entry(pos, &ipcomp_tfms_list, list) {364 struct crypto_tfm *tfm;
···358 int cpu;359360 /* This can be any valid CPU ID so we don't need locking. */361+ cpu = raw_smp_processor_id();362363 list_for_each_entry(pos, &ipcomp_tfms_list, list) {364 struct crypto_tfm *tfm;
···354 int cpu;355356 /* This can be any valid CPU ID so we don't need locking. */357- cpu = smp_processor_id();358359 list_for_each_entry(pos, &ipcomp6_tfms_list, list) {360 struct crypto_tfm *tfm;
···354 int cpu;355356 /* This can be any valid CPU ID so we don't need locking. */357+ cpu = raw_smp_processor_id();358359 list_for_each_entry(pos, &ipcomp6_tfms_list, list) {360 struct crypto_tfm *tfm;
+7-2
scripts/mod/modpost.c
···359 /* ignore __this_module, it will be resolved shortly */360 if (strcmp(symname, MODULE_SYMBOL_PREFIX "__this_module") == 0)361 break;362-#ifdef STT_REGISTER00000363 if (info->hdr->e_machine == EM_SPARC ||364 info->hdr->e_machine == EM_SPARCV9) {365 /* Ignore register directives. */366- if (ELF_ST_TYPE(sym->st_info) == STT_REGISTER)367 break;368 }369#endif
···359 /* ignore __this_module, it will be resolved shortly */360 if (strcmp(symname, MODULE_SYMBOL_PREFIX "__this_module") == 0)361 break;362+/* cope with newer glibc (2.3.4 or higher) STT_ definition in elf.h */363+#if defined(STT_REGISTER) || defined(STT_SPARC_REGISTER)364+/* add compatibility with older glibc */365+#ifndef STT_SPARC_REGISTER366+#define STT_SPARC_REGISTER STT_REGISTER367+#endif368 if (info->hdr->e_machine == EM_SPARC ||369 info->hdr->e_machine == EM_SPARCV9) {370 /* Ignore register directives. */371+ if (ELF_ST_TYPE(sym->st_info) == STT_SPARC_REGISTER)372 break;373 }374#endif