···24232423S: Canada2424242424252425N: Zwane Mwaikambo24262426-E: zwane@linuxpower.ca24272427-W: http://function.linuxpower.ca24262426+E: zwane@arm.linux.org.uk24282427D: Various driver hacking24292428D: Lowlevel x86 kernel hacking24302429D: General debugging
···726726static int __init detect_init_APIC (void)727727{728728 u32 h, l, features;729729- extern void get_cpu_vendor(struct cpuinfo_x86*);730729731730 /* Disabled by kernel option? */732731 if (enable_local_apic < 0)733732 return -1;734734-735735- /* Workaround for us being called before identify_cpu(). */736736- get_cpu_vendor(&boot_cpu_data);737733738734 switch (boot_cpu_data.x86_vendor) {739735 case X86_VENDOR_AMD:
+2-2
arch/i386/kernel/nmi.c
···195195 wrmsr(MSR_P6_EVNTSEL0, 0, 0);196196 break;197197 case 15:198198- if (boot_cpu_data.x86_model > 0x3)198198+ if (boot_cpu_data.x86_model > 0x4)199199 break;200200201201 wrmsr(MSR_P4_IQ_CCCR0, 0, 0);···432432 setup_p6_watchdog();433433 break;434434 case 15:435435- if (boot_cpu_data.x86_model > 0x3)435435+ if (boot_cpu_data.x86_model > 0x4)436436 return;437437438438 if (!setup_p4_watchdog())
+7-3
arch/ppc/syslib/ppc4xx_dma.c
···620620 return DMA_STATUS_GOOD;621621}622622623623+#ifdef CONFIG_PPC4xx_EDMA623624/*624625 * Enables the burst on the channel (BTEN bit in the control/count register)625626 * Note:···686685 return DMA_STATUS_GOOD;687686}688687688688+EXPORT_SYMBOL(ppc4xx_enable_burst);689689+EXPORT_SYMBOL(ppc4xx_disable_burst);690690+EXPORT_SYMBOL(ppc4xx_set_burst_size);691691+#endif /* CONFIG_PPC4xx_EDMA */692692+689693EXPORT_SYMBOL(ppc4xx_init_dma_channel);690694EXPORT_SYMBOL(ppc4xx_get_channel_config);691695EXPORT_SYMBOL(ppc4xx_set_channel_priority);···709703EXPORT_SYMBOL(ppc4xx_disable_dma_interrupt);710704EXPORT_SYMBOL(ppc4xx_get_dma_status);711705EXPORT_SYMBOL(ppc4xx_clr_dma_status);712712-EXPORT_SYMBOL(ppc4xx_enable_burst);713713-EXPORT_SYMBOL(ppc4xx_disable_burst);714714-EXPORT_SYMBOL(ppc4xx_set_burst_size);706706+
···492492 */493493 set_cpu_sibling_map(smp_processor_id());494494495495+ /* 496496+ * Wait for TSC sync to not schedule things before.497497+ * We still process interrupts, which could see an inconsistent498498+ * time in that window unfortunately. 499499+ * Do this here because TSC sync has global unprotected state.500500+ */501501+ tsc_sync_wait();502502+495503 /*496504 * We need to hold call_lock, so there is no inconsistency497505 * between the time smp_call_function() determines number of···516508 cpu_set(smp_processor_id(), cpu_online_map);517509 per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;518510 unlock_ipi_call_lock();519519-520520- mb();521521-522522- /* Wait for TSC sync to not schedule things before.523523- We still process interrupts, which could see an inconsistent524524- time in that window unfortunately. */525525- tsc_sync_wait();526511527512 cpu_idle();528513}
+1-3
arch/x86_64/mm/fault.c
···211211{212212 if (tsk->pid == 1)213213 return 1;214214- /* Warn for strace, but not for gdb */215215- if (!test_ti_thread_flag(tsk->thread_info, TIF_SYSCALL_TRACE) &&216216- (tsk->ptrace & PT_PTRACED))214214+ if (tsk->ptrace & PT_PTRACED)217215 return 0;218216 return (tsk->sighand->action[sig-1].sa.sa_handler == SIG_IGN) ||219217 (tsk->sighand->action[sig-1].sa.sa_handler == SIG_DFL);
+1
drivers/ide/Kconfig
···764764config BLK_DEV_IDEDMA_PMAC765765 bool "PowerMac IDE DMA support"766766 depends on BLK_DEV_IDE_PMAC767767+ select BLK_DEV_IDEDMA_PCI767768 help768769 This option allows the driver for the built-in IDE controller on769770 Power Macintoshes and PowerBooks to use DMA (direct memory access)
+1-1
drivers/ide/ide-floppy.c
···317317 unsigned long flags;318318} idefloppy_floppy_t;319319320320-#define IDEFLOPPY_TICKS_DELAY 3 /* default delay for ZIP 100 */320320+#define IDEFLOPPY_TICKS_DELAY HZ/20 /* default delay for ZIP 100 (50ms) */321321322322/*323323 * Floppy flag bits values.
···214214 .ethtool_ops = &loopback_ethtool_ops,215215};216216217217-/* Setup and register the of the LOOPBACK device. */217217+/* Setup and register the loopback device. */218218int __init loopback_init(void)219219{220220 struct net_device_stats *stats;
+4-2
drivers/net/tg3.c
···66666767#define DRV_MODULE_NAME "tg3"6868#define PFX DRV_MODULE_NAME ": "6969-#define DRV_MODULE_VERSION "3.35"7070-#define DRV_MODULE_RELDATE "August 6, 2005"6969+#define DRV_MODULE_VERSION "3.36"7070+#define DRV_MODULE_RELDATE "August 19, 2005"71717272#define TG3_DEF_MAC_MODE 07373#define TG3_DEF_RX_MODE 0···89708970 tp->phy_id = hw_phy_id;89718971 if (hw_phy_id_masked == PHY_ID_BCM8002)89728972 tp->tg3_flags2 |= TG3_FLG2_PHY_SERDES;89738973+ else89748974+ tp->tg3_flags2 &= ~TG3_FLG2_PHY_SERDES;89738975 } else {89748976 if (tp->phy_id != PHY_ID_INVALID) {89758977 /* Do nothing, phy ID already set up in
···62626363 break;6464 case IOPRIO_CLASS_IDLE:6565+ if (!capable(CAP_SYS_ADMIN))6666+ return -EPERM;6567 break;6668 default:6769 return -EINVAL;
+9-7
fs/jffs2/symlink.c
···1818#include <linux/namei.h>1919#include "nodelist.h"20202121-static int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd);2121+static void *jffs2_follow_link(struct dentry *dentry, struct nameidata *nd);22222323struct inode_operations jffs2_symlink_inode_operations =2424{ ···2727 .setattr = jffs2_setattr2828};29293030-static int jffs2_follow_link(struct dentry *dentry, struct nameidata *nd)3030+static void *jffs2_follow_link(struct dentry *dentry, struct nameidata *nd)3131{3232 struct jffs2_inode_info *f = JFFS2_INODE_INFO(dentry->d_inode);3333+ char *p = (char *)f->dents;33343435 /*3536 * We don't acquire the f->sem mutex here since the only data we···4645 * nd_set_link() call.4746 */48474949- if (!f->dents) {4848+ if (!p) {5049 printk(KERN_ERR "jffs2_follow_link(): can't find symlink taerget\n");5151- return -EIO;5050+ p = ERR_PTR(-EIO);5151+ } else {5252+ D1(printk(KERN_DEBUG "jffs2_follow_link(): target path is '%s'\n", (char *) f->dents));5253 }5353- D1(printk(KERN_DEBUG "jffs2_follow_link(): target path is '%s'\n", (char *) f->dents));54545555- nd_set_link(nd, (char *)f->dents);5555+ nd_set_link(nd, p);56565757 /*5858 * We unlock the f->sem mutex but VFS will use the f->dents string. This is safe5959 * since the only way that may cause f->dents to be changed is iput() operation.6060 * But VFS will not use f->dents after iput() has been called.6161 */6262- return 0;6262+ return NULL;6363}6464
···19851985 * iput doesn't deadlock in reiserfs_delete_xattrs. The locking19861986 * code really needs to be reworked, but this will take care of it19871987 * for now. -jeffm */19881988- if (REISERFS_I(dir)->i_acl_default) {19881988+ if (REISERFS_I(dir)->i_acl_default && !IS_ERR(REISERFS_I(dir)->i_acl_default)) {19891989 reiserfs_write_unlock_xattrs(dir->i_sb);19901990 iput(inode);19911991 reiserfs_write_lock_xattrs(dir->i_sb);
···358358 int cpu;359359360360 /* This can be any valid CPU ID so we don't need locking. */361361- cpu = smp_processor_id();361361+ cpu = raw_smp_processor_id();362362363363 list_for_each_entry(pos, &ipcomp_tfms_list, list) {364364 struct crypto_tfm *tfm;
···6161 if (!skb_ip_make_writable(pskb, (*pskb)->len))6262 return NF_DROP;63636464+ if ((*pskb)->ip_summed == CHECKSUM_HW &&6565+ skb_checksum_help(*pskb, out == NULL))6666+ return NF_DROP;6767+6468 iph = (*pskb)->nh.iph;6569 tcplen = (*pskb)->len - iph->ihl*4;6670···190186 newmss);191187192188 retmodified:193193- /* We never hw checksum SYN packets. */194194- BUG_ON((*pskb)->ip_summed == CHECKSUM_HW);195195-196189 (*pskb)->nfcache |= NFC_UNKNOWN | NFC_ALTERED;197190 return IPT_CONTINUE;198191}
+1-1
net/ipv6/ipcomp6.c
···354354 int cpu;355355356356 /* This can be any valid CPU ID so we don't need locking. */357357- cpu = smp_processor_id();357357+ cpu = raw_smp_processor_id();358358359359 list_for_each_entry(pos, &ipcomp6_tfms_list, list) {360360 struct crypto_tfm *tfm;
+7-2
scripts/mod/modpost.c
···359359 /* ignore __this_module, it will be resolved shortly */360360 if (strcmp(symname, MODULE_SYMBOL_PREFIX "__this_module") == 0)361361 break;362362-#ifdef STT_REGISTER362362+/* cope with newer glibc (2.3.4 or higher) STT_ definition in elf.h */363363+#if defined(STT_REGISTER) || defined(STT_SPARC_REGISTER)364364+/* add compatibility with older glibc */365365+#ifndef STT_SPARC_REGISTER366366+#define STT_SPARC_REGISTER STT_REGISTER367367+#endif363368 if (info->hdr->e_machine == EM_SPARC ||364369 info->hdr->e_machine == EM_SPARCV9) {365370 /* Ignore register directives. */366366- if (ELF_ST_TYPE(sym->st_info) == STT_REGISTER)371371+ if (ELF_ST_TYPE(sym->st_info) == STT_SPARC_REGISTER)367372 break;368373 }369374#endif