## Automatically generated incremental diff ## From: linux-2.6.3-rc4 ## To: linux-2.6.3 ## Robot: $Id: make-incremental-diff,v 1.12 2004/01/06 07:19:36 hpa Exp $ diff -urN linux-2.6.3-rc4/Makefile linux-2.6.3/Makefile --- linux-2.6.3-rc4/Makefile 2004-02-17 20:38:30.000000000 -0800 +++ linux-2.6.3/Makefile 2004-02-17 20:38:36.000000000 -0800 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 3 -EXTRAVERSION =-rc4 +EXTRAVERSION = NAME=Feisty Dunnart # *DOCUMENTATION* diff -urN linux-2.6.3-rc4/arch/sparc64/kernel/sys_sparc32.c linux-2.6.3/arch/sparc64/kernel/sys_sparc32.c --- linux-2.6.3-rc4/arch/sparc64/kernel/sys_sparc32.c 2004-02-03 19:43:57.000000000 -0800 +++ linux-2.6.3/arch/sparc64/kernel/sys_sparc32.c 2004-02-17 20:38:37.000000000 -0800 @@ -2713,6 +2713,9 @@ asmlinkage long sys32_sysctl(struct __sysctl_args32 *args) { +#ifndef CONFIG_SYSCTL + return -ENOSYS; +#else struct __sysctl_args32 tmp; int error; size_t oldlen, *oldlenp = NULL; @@ -2747,6 +2750,7 @@ copy_to_user(args->__unused, tmp.__unused, sizeof(tmp.__unused)); } return error; +#endif } extern long sys_lookup_dcookie(u64 cookie64, char *buf, size_t len); diff -urN linux-2.6.3-rc4/arch/sparc64/kernel/traps.c linux-2.6.3/arch/sparc64/kernel/traps.c --- linux-2.6.3-rc4/arch/sparc64/kernel/traps.c 2004-02-03 19:45:00.000000000 -0800 +++ linux-2.6.3/arch/sparc64/kernel/traps.c 2004-02-17 20:38:37.000000000 -0800 @@ -1739,6 +1739,11 @@ fp = ksp + STACK_BIAS; thread_base = (unsigned long) tp; + + printk("Call Trace:"); +#ifdef CONFIG_KALLSYMS + printk("\n"); +#endif do { /* Bogus frame pointer? */ if (fp < (thread_base + sizeof(struct thread_info)) || @@ -1746,10 +1751,13 @@ break; rw = (struct reg_window *)fp; pc = rw->ins[7]; - printk("[%016lx] ", pc); + printk(" [%016lx] ", pc); + print_symbol("%s\n", pc); fp = rw->ins[6] + STACK_BIAS; } while (++count < 16); +#ifndef CONFIG_KALLSYMS printk("\n"); +#endif } void show_trace_task(struct task_struct *tsk) @@ -1776,7 +1784,6 @@ extern void __show_regs(struct pt_regs * regs); extern void smp_report_regs(void); int count = 0; - struct reg_window *lastrw; /* Amuse the user. */ printk( @@ -1795,17 +1802,15 @@ /* Stop the back trace when we hit userland or we * find some badly aligned kernel stack. */ - lastrw = (struct reg_window *)current; while (rw && count++ < 30 && - rw >= lastrw && + (((unsigned long) rw) >= PAGE_OFFSET) && (char *) rw < ((char *) current) + sizeof (union thread_union) && !(((unsigned long) rw) & 0x7)) { printk("Caller[%016lx]", rw->ins[7]); - print_symbol(": %s\n", rw->ins[7]); + print_symbol(": %s", rw->ins[7]); printk("\n"); - lastrw = rw; rw = (struct reg_window *) (rw->ins[6] + STACK_BIAS); } diff -urN linux-2.6.3-rc4/arch/x86_64/kernel/pci-gart.c linux-2.6.3/arch/x86_64/kernel/pci-gart.c --- linux-2.6.3-rc4/arch/x86_64/kernel/pci-gart.c 2004-02-17 20:38:30.000000000 -0800 +++ linux-2.6.3/arch/x86_64/kernel/pci-gart.c 2004-02-17 20:38:37.000000000 -0800 @@ -521,7 +521,7 @@ int npages; int i; if (dma_addr < iommu_bus_base + EMERGENCY_PAGES*PAGE_SIZE || - dma_addr > iommu_bus_base + iommu_size) + dma_addr >= iommu_bus_base + iommu_size) return; iommu_page = (dma_addr - iommu_bus_base)>>PAGE_SHIFT; npages = to_pages(dma_addr, size); diff -urN linux-2.6.3-rc4/drivers/char/agp/Kconfig linux-2.6.3/drivers/char/agp/Kconfig --- linux-2.6.3-rc4/drivers/char/agp/Kconfig 2004-02-03 19:43:56.000000000 -0800 +++ linux-2.6.3/drivers/char/agp/Kconfig 2004-02-17 20:38:37.000000000 -0800 @@ -127,14 +127,14 @@ config AGP_I460 tristate "Intel 460GX chipset support" - depends on AGP && IA64 + depends on AGP && (IA64_DIG || IA64_GENERIC) help This option gives you AGP GART support for the Intel 460GX chipset for IA64 processors. config AGP_HP_ZX1 tristate "HP ZX1 chipset AGP support" - depends on AGP && IA64 + depends on AGP && (IA64_HP_ZX1 || IA64_GENERIC) help This option gives you AGP GART support for the HP ZX1 chipset for IA64 processors. diff -urN linux-2.6.3-rc4/drivers/char/drm/radeon_state.c linux-2.6.3/drivers/char/drm/radeon_state.c --- linux-2.6.3-rc4/drivers/char/drm/radeon_state.c 2004-02-17 20:38:31.000000000 -0800 +++ linux-2.6.3/drivers/char/drm/radeon_state.c 2004-02-17 20:38:37.000000000 -0800 @@ -2185,10 +2185,21 @@ case RADEON_PARAM_STATUS_HANDLE: value = dev_priv->ring_rptr_offset; break; +#if BITS_PER_LONG == 32 + /* + * This ioctl() doesn't work on 64-bit platforms because hw_lock is a + * pointer which can't fit into an int-sized variable. According to + * Michel Dänzer, the ioctl() is only used on embedded platforms, so + * not supporting it shouldn't be a problem. If the same functionality + * is needed on 64-bit platforms, a new ioctl() would have to be added, + * so backwards-compatibility for the embedded platforms can be + * maintained. --davidm 4-Feb-2004. + */ case RADEON_PARAM_SAREA_HANDLE: /* The lock is the first dword in the sarea. */ - value = (int)dev->lock.hw_lock; - break; + value = (long)dev->lock.hw_lock; + break; +#endif case RADEON_PARAM_GART_TEX_HANDLE: value = dev_priv->gart_textures_offset; break; diff -urN linux-2.6.3-rc4/drivers/ide/ide-iops.c linux-2.6.3/drivers/ide/ide-iops.c --- linux-2.6.3-rc4/drivers/ide/ide-iops.c 2004-02-17 20:38:31.000000000 -0800 +++ linux-2.6.3/drivers/ide/ide-iops.c 2004-02-17 20:38:38.000000000 -0800 @@ -1125,16 +1125,17 @@ return ide_stopped; } -void check_dma_crc (ide_drive_t *drive) +static void check_dma_crc(ide_drive_t *drive) { +#ifdef CONFIG_BLK_DEV_IDEDMA if (drive->crc_count) { (void) HWIF(drive)->ide_dma_off_quietly(drive); ide_set_xfer_rate(drive, ide_auto_reduce_xfer(drive)); if (drive->current_speed >= XFER_SW_DMA_0) (void) HWIF(drive)->ide_dma_on(drive); - } else { + } else (void)__ide_dma_off(drive); - } +#endif } void pre_reset (ide_drive_t *drive) diff -urN linux-2.6.3-rc4/drivers/ide/ide.c linux-2.6.3/drivers/ide/ide.c --- linux-2.6.3-rc4/drivers/ide/ide.c 2004-02-17 20:38:31.000000000 -0800 +++ linux-2.6.3/drivers/ide/ide.c 2004-02-17 20:38:38.000000000 -0800 @@ -1320,6 +1320,7 @@ static int set_using_dma (ide_drive_t *drive, int arg) { +#ifdef CONFIG_BLK_DEV_IDEDMA if (!drive->id || !(drive->id->capability & 1)) return -EPERM; if (HWIF(drive)->ide_dma_check == NULL) @@ -1332,6 +1333,9 @@ return -EIO; } return 0; +#else + return -EPERM; +#endif } static int set_pio_mode (ide_drive_t *drive, int arg) diff -urN linux-2.6.3-rc4/drivers/ide/setup-pci.c linux-2.6.3/drivers/ide/setup-pci.c --- linux-2.6.3-rc4/drivers/ide/setup-pci.c 2004-02-03 19:43:43.000000000 -0800 +++ linux-2.6.3/drivers/ide/setup-pci.c 2004-02-17 20:38:38.000000000 -0800 @@ -150,6 +150,8 @@ return 0; } +#ifdef CONFIG_BLK_DEV_IDEDMA_PCI + #ifdef CONFIG_BLK_DEV_IDEDMA_FORCED /* * Long lost data from 2.0.34 that is now in 2.0.39 @@ -279,6 +281,7 @@ } return dma_base; } +#endif /* CONFIG_BLK_DEV_IDEDMA_PCI */ void ide_setup_pci_noise (struct pci_dev *dev, ide_pci_device_t *d) { diff -urN linux-2.6.3-rc4/drivers/media/video/tuner.c linux-2.6.3/drivers/media/video/tuner.c --- linux-2.6.3-rc4/drivers/media/video/tuner.c 2004-02-17 20:38:31.000000000 -0800 +++ linux-2.6.3/drivers/media/video/tuner.c 2004-02-17 20:38:38.000000000 -0800 @@ -1041,6 +1041,7 @@ i2c_attach_client(client); if (type < TUNERS) { + t->type = type; printk("tuner: type forced to %d (%s) [insmod]\n", t->type,tuners[t->type].name); set_type(client,type); diff -urN linux-2.6.3-rc4/drivers/video/Kconfig linux-2.6.3/drivers/video/Kconfig --- linux-2.6.3-rc4/drivers/video/Kconfig 2004-02-17 20:38:32.000000000 -0800 +++ linux-2.6.3/drivers/video/Kconfig 2004-02-17 20:38:41.000000000 -0800 @@ -462,6 +462,7 @@ config FB_MATROX tristate "Matrox acceleration" depends on FB && PCI + select I2C_ALGOBIT if FB_MATROX_I2C ---help--- Say Y here if you have a Matrox Millennium, Matrox Millennium II, Matrox Mystique, Matrox Mystique 220, Matrox Productiva G100, Matrox @@ -549,7 +550,6 @@ config FB_MATROX_I2C tristate "Matrox I2C support" depends on FB_MATROX && I2C - select I2C_ALGOBIT ---help--- This drivers creates I2C buses which are needed for accessing the DDC (I2C) bus present on all Matroxes, an I2C bus which @@ -627,6 +627,7 @@ config FB_RADEON tristate "ATI Radeon display support" depends on FB && PCI + select I2C_ALGOBIT if FB_RADEON_I2C help Choose this option if you want to use an ATI Radeon graphics card as a framebuffer device. There are both PCI and AGP versions. You @@ -645,7 +646,6 @@ config FB_RADEON_I2C bool "DDC/I2C for ATI Radeon support" depends on FB_RADEON && I2C - select I2C_ALGOBIT default y help Say Y here if you want DDC/I2C support for your Radeon board. diff -urN linux-2.6.3-rc4/drivers/video/fbmem.c linux-2.6.3/drivers/video/fbmem.c --- linux-2.6.3-rc4/drivers/video/fbmem.c 2004-02-17 20:38:32.000000000 -0800 +++ linux-2.6.3/drivers/video/fbmem.c 2004-02-17 20:38:41.000000000 -0800 @@ -107,8 +107,6 @@ extern int platinumfb_setup(char*); extern int control_init(void); extern int control_setup(char*); -extern int platinum_init(void); -extern int platinum_setup(char*); extern int valkyriefb_init(void); extern int valkyriefb_setup(char*); extern int chips_init(void); diff -urN linux-2.6.3-rc4/fs/block_dev.c linux-2.6.3/fs/block_dev.c --- linux-2.6.3-rc4/fs/block_dev.c 2004-02-03 19:45:09.000000000 -0800 +++ linux-2.6.3/fs/block_dev.c 2004-02-17 20:38:42.000000000 -0800 @@ -697,12 +697,7 @@ down(&bdev->bd_sem); lock_kernel(); if (!--bdev->bd_openers) { - switch (kind) { - case BDEV_FILE: - case BDEV_FS: - sync_blockdev(bdev); - break; - } + sync_blockdev(bdev); kill_bdev(bdev); } if (bdev->bd_contains == bdev) { diff -urN linux-2.6.3-rc4/fs/cifs/file.c linux-2.6.3/fs/cifs/file.c --- linux-2.6.3-rc4/fs/cifs/file.c 2004-02-03 19:43:04.000000000 -0800 +++ linux-2.6.3/fs/cifs/file.c 2004-02-17 20:38:42.000000000 -0800 @@ -925,7 +925,7 @@ __pagevec_lru_add(plru_pvec); flush_dcache_page(page); SetPageUptodate(page); - kunmap_atomic(page,KM_USER0); + kunmap_atomic(target,KM_USER0); unlock_page(page); page_cache_release(page); data += PAGE_CACHE_SIZE; diff -urN linux-2.6.3-rc4/include/asm-sparc64/dma-mapping.h linux-2.6.3/include/asm-sparc64/dma-mapping.h --- linux-2.6.3-rc4/include/asm-sparc64/dma-mapping.h 2004-02-03 19:43:19.000000000 -0800 +++ linux-2.6.3/include/asm-sparc64/dma-mapping.h 2004-02-17 20:38:42.000000000 -0800 @@ -1,5 +1,27 @@ +#ifndef _ASM_SPARC64_DMA_MAPPING_H +#define _ASM_SPARC64_DMA_MAPPING_H + #include #ifdef CONFIG_PCI #include -#endif +#else + +struct device; + +static inline void *dma_alloc_coherent(struct device *dev, size_t size, + dma_addr_t *dma_handle, int flag) +{ + BUG(); + return NULL; +} + +static inline void dma_free_coherent(struct device *dev, size_t size, + void *vaddr, dma_addr_t dma_handle) +{ + BUG(); +} + +#endif /* PCI */ + +#endif /* _ASM_SPARC64_DMA_MAPPING_H */ diff -urN linux-2.6.3-rc4/include/linux/ide.h linux-2.6.3/include/linux/ide.h --- linux-2.6.3-rc4/include/linux/ide.h 2004-02-17 20:38:32.000000000 -0800 +++ linux-2.6.3/include/linux/ide.h 2004-02-17 20:38:42.000000000 -0800 @@ -1626,6 +1626,9 @@ extern ide_startstop_t __ide_dma_queued_write(ide_drive_t *drive); extern ide_startstop_t __ide_dma_queued_start(ide_drive_t *drive); #endif + +#else +static inline int __ide_dma_off(ide_drive_t *drive) { return 0; } #endif /* CONFIG_BLK_DEV_IDEDMA */ #ifndef CONFIG_BLK_DEV_IDEDMA_PCI diff -urN linux-2.6.3-rc4/mm/mremap.c linux-2.6.3/mm/mremap.c --- linux-2.6.3-rc4/mm/mremap.c 2004-02-17 20:38:32.000000000 -0800 +++ linux-2.6.3/mm/mremap.c 2004-02-17 20:38:42.000000000 -0800 @@ -135,15 +135,17 @@ dst = alloc_one_pte_map(mm, new_addr); if (src == NULL) src = get_one_pte_map_nested(mm, old_addr); - error = copy_one_pte(vma, old_addr, src, dst, &pte_chain); - pte_unmap_nested(src); - pte_unmap(dst); - } else /* - * Why do we need this flush ? If there is no pte for - * old_addr, then there must not be a pte for it as well. + * Since alloc_one_pte_map can drop and re-acquire + * page_table_lock, we should re-check the src entry... */ - flush_tlb_page(vma, old_addr); + if (src) { + error = copy_one_pte(vma, old_addr, src, + dst, &pte_chain); + pte_unmap_nested(src); + } + pte_unmap(dst); + } spin_unlock(&mm->page_table_lock); pte_chain_free(pte_chain); out: diff -urN linux-2.6.3-rc4/net/ipv4/netfilter/ip_tables.c linux-2.6.3/net/ipv4/netfilter/ip_tables.c --- linux-2.6.3-rc4/net/ipv4/netfilter/ip_tables.c 2004-02-17 20:38:32.000000000 -0800 +++ linux-2.6.3/net/ipv4/netfilter/ip_tables.c 2004-02-17 20:38:42.000000000 -0800 @@ -1529,11 +1529,16 @@ == tcpinfo->flg_cmp, IPT_TCP_INV_FLAGS)) return 0; - if (tcpinfo->option && - !tcp_find_option(tcpinfo->option, skb, tcph.doff*4 - sizeof(tcph), - tcpinfo->invflags & IPT_TCP_INV_OPTION, - hotdrop)) - return 0; + if (tcpinfo->option) { + if (tcph.doff * 4 < sizeof(tcph)) { + *hotdrop = 1; + return 0; + } + if (!tcp_find_option(tcpinfo->option, skb, tcph.doff*4 - sizeof(tcph), + tcpinfo->invflags & IPT_TCP_INV_OPTION, + hotdrop)) + return 0; + } return 1; } diff -urN linux-2.6.3-rc4/net/ipv6/netfilter/ip6_tables.c linux-2.6.3/net/ipv6/netfilter/ip6_tables.c --- linux-2.6.3-rc4/net/ipv6/netfilter/ip6_tables.c 2004-02-17 20:38:33.000000000 -0800 +++ linux-2.6.3/net/ipv6/netfilter/ip6_tables.c 2004-02-17 20:38:42.000000000 -0800 @@ -1545,7 +1545,8 @@ duprintf("tcp_match: finding option\n"); /* If we don't have the whole header, drop packet. */ - if (tcp->doff * 4 > datalen) { + if (tcp->doff * 4 < sizeof(struct tcphdr) || + tcp->doff * 4 > datalen) { *hotdrop = 1; return 0; } diff -urN linux-2.6.3-rc4/scripts/kconfig/symbol.c linux-2.6.3/scripts/kconfig/symbol.c --- linux-2.6.3-rc4/scripts/kconfig/symbol.c 2004-02-03 19:43:19.000000000 -0800 +++ linux-2.6.3/scripts/kconfig/symbol.c 2004-02-17 20:38:42.000000000 -0800 @@ -706,7 +706,7 @@ goto out; for (prop = sym->prop; prop; prop = prop->next) { - if (prop->type == P_CHOICE) + if (prop->type == P_CHOICE || prop->type == P_SELECT) continue; sym2 = sym_check_expr_deps(prop->visible.expr); if (sym2)