ChangeSet@1.1886, 2004-04-19 18:39:52-07:00, benh@kernel.crashing.org [PATCH] ppc64: siginfo conversion fix My message queue patch fixes the 64 bits -> 32 bits conversion of siginfo, but didn't change the 32 -> 64 bits conversion done in sys32_rt_sigqueueinfo() which was apparently bogus as well. After much discussion & debate on the right way of converting that structure, I decided to go the sparc64 / s390 way, and not the x86_64 way, that is to copy the various unions data "as is". This guarantees that whatever a 32 bist app passes there, another 32 bits app will understand it. Crossover between 32 and 64 bits apps on such things as home-made userland siginfo isn't something we can help with anyway. The x86_64 choice of converting as if it was an RT signal, thus converting the sigval, cannot easily be applied to big endian archs since the sigval is a union of a ptr and an int, on BE, the int happens to be on the wrong half of the 64 bits ptr, thus we can't do a simple conversion. ChangeSet@1.1885, 2004-04-19 16:31:45-07:00, B.Zolnierkiewicz@elka.pw.edu.pl [PATCH] generic ide_init_hwif_ports() Add generic ide_init_hwif_ports() to and remove arch specific versions except arm26, arm, h8300, i386-pc9800, m68k and m68knommu ones. ChangeSet@1.1884, 2004-04-19 16:31:32-07:00, B.Zolnierkiewicz@elka.pw.edu.pl [PATCH] ide_init_default_hwifs() -> ide_init_default_irq() init_ide_data() initializes default IDE interfaces but without default IRQ (hwif->irq and hwif->hw.irq fields) so introduce ide_init_default_irq() and remove redundant ide_init_default_hwifs() (except arm26 and arm ones). As a side-effect it fixes: - CONFIG_BLK_DEV_HD_IDE if !CONFIG_BLK_DEV_IDEPCI (i386) - hwif->noprobe shouldn't be 0 if !hwif->io_ports[IDE_DATA_OFFSET] (alpha, i386, ia64, mips, sh, x86_64) ChangeSet@1.1883, 2004-04-19 16:31:19-07:00, B.Zolnierkiewicz@elka.pw.edu.pl [PATCH] ide.c: split init_hwif_default() out of init_hwif_data() ChangeSet@1.1858.2.1, 2004-04-19 15:20:19-07:00, torvalds@evo.osdl.org Remove unnecessary declaration of inline functions ChangeSet@1.1879, 2004-04-19 12:19:26-07:00, torvalds@ppc970.osdl.org Merge bk://gkernel.bkbits.net/net-drivers-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1860.4.16, 2004-04-19 12:07:58-07:00, akpm@osdl.org [PATCH] Warn if module_param and MODULE_PARM mixed From: Rusty Russell From: Pavel Roskin If you use both module_param (new) and MODULE_PARM (obsolete) in a module, only the second gets recognised. Warn. ChangeSet@1.1860.4.15, 2004-04-19 12:07:44-07:00, akpm@osdl.org [PATCH] nfs token table can be __initdata nfs token table can be __initdata ChangeSet@1.1860.4.14, 2004-04-19 12:07:33-07:00, akpm@osdl.org [PATCH] sparc32 stack bounds checking From: William Lee Irwin III The stack is now shared with struct thread_info on most arches, not task_t. This mostly affects get_wchan() and stack usage debug. ChangeSet@1.1860.4.13, 2004-04-19 12:07:19-07:00, akpm@osdl.org [PATCH] ppc32 stack bounds checking From: William Lee Irwin III The stack is now shared with struct thread_info on most arches, not task_t. This mostly affects get_wchan() and stack usage debug. ChangeSet@1.1860.4.12, 2004-04-19 12:07:08-07:00, akpm@osdl.org [PATCH] m68knommu stack bounds checking From: William Lee Irwin III The stack is now shared with struct thread_info on most arches, not task_t. This mostly affects get_wchan() and stack usage debug. ChangeSet@1.1860.4.11, 2004-04-19 12:06:55-07:00, akpm@osdl.org [PATCH] m68k stack bounds checking From: William Lee Irwin III The stack is now shared with struct thread_info on most arches, not task_t. This mostly affects get_wchan() and stack usage debug. ChangeSet@1.1860.4.10, 2004-04-19 12:06:44-07:00, akpm@osdl.org [PATCH] h8300 stack bounds checking From: William Lee Irwin III The stack is now shared with struct thread_info on most arches, not task_t. This mostly affects get_wchan() and stack usage debug. ChangeSet@1.1860.4.9, 2004-04-19 12:06:30-07:00, akpm@osdl.org [PATCH] From: David Gibson hugepage_vma() is both misleadingly named and unnecessary. On most archs it always returns NULL, and on IA64 the vma it returns is never used. The function's real purpose is to determine whether the address it is passed is a special hugepage address which must be looked up in hugepage pagetables, rather than being looked up in the normal pagetables (which might have specially marked hugepage PMDs or PTEs). This patch kills off hugepage_vma() and folds the logic it really needs into follow_huge_addr(). That now returns a (page *) if called on a special hugepage address, and an error encoded with ERR_PTR otherwise. This also requires tweaking the IA64 code to check that the hugepage PTE is present in follow_huge_addr() - previously this was guaranteed, since it was only called if the address was in an existing hugepage VMA, and hugepages are always prefaulted. ChangeSet@1.1860.4.8, 2004-04-19 12:06:16-07:00, akpm@osdl.org [PATCH] Fix default value for commit interval for older reiserfs filesystems. From: Bart Samwel The reiserfs patch that adds support for "commit=0" saves the default max commit age in a variable when the fs is originally mounted, so that it can later restore it. Unfortunately it makes some mistakes with that: - The default is not saved when the original mount has a commit=NNN option. - The default is not correctly saved for older reiserfs filesystems, where the default was not stored on disk. This patch fixes these mistakes. ChangeSet@1.1860.4.7, 2004-04-19 12:06:03-07:00, akpm@osdl.org [PATCH] direct-IO return type fixes From: me, Badari Pulavarty Currently a direct-IO read or write of more than 2G on 64-bit machines is broken. Replace int with ssize_t in various places to fix that up. ChangeSet@1.1860.4.6, 2004-04-19 12:05:51-07:00, akpm@osdl.org [PATCH] Increase number of dynamic inodes in procfs From: Nathan Lynch On some larger ppc64 configurations /proc/device-tree is exhausting procfs' dynamic (non-pid) inode range (16K). This patch makes the dynamic inode range 0xf0000000-0xffffffff and changes the inode number allocator to use the idr.c allocator for the first-fit allocations. ChangeSet@1.1860.4.5, 2004-04-19 12:05:40-07:00, akpm@osdl.org [PATCH] fix load_elf_binary error path on unshare_files error From: Chris Wright Make sure to return proper retval on unshare_files() error in load_elf_binary. Error noted by Kirill Korotaev . ChangeSet@1.1860.4.4, 2004-04-19 12:05:29-07:00, akpm@osdl.org [PATCH] idr.c: extra features enhancements From: Jim Houston - Adds idr_get_new_above(), whihc permits us to do a first-fit search from a specified offset rather than always from zero. - Add IDR_INIT() DEFINE_IDR() constructors. Often idr's are singletons and having to cook up an initcall for them is a pain. This is needed by the "Increase number of dynamic inodes in procfs" patch. ChangeSet@1.1860.4.3, 2004-04-19 12:05:17-07:00, akpm@osdl.org [PATCH] Rename PF_IOTHREAD to PF_NOFREEZE From: Nigel Cunningham A few weeks ago, Pavel and I agreed that PF_IOTHREAD should be renamed to PF_NOFREEZE. This reflects the fact that some threads so marked aren't actually used for IO while suspending, but simply shouldn't be frozen. This patch, against 2.6.5 vanilla, applies that change. In the refrigerator calls, the actual value doesn't matter (so long as it's non-zero) and it makes more sense to use PF_FREEZE so I've used that. ChangeSet@1.1860.4.2, 2004-04-19 12:05:02-07:00, akpm@osdl.org [PATCH] CPU_MASK_ALL fix From: Nick Piggin Do the typecast thing to permit CPU_MASK_ALL to be used both as an initialiser and as a normal rvalue. ChangeSet@1.1860.4.1, 2004-04-19 12:04:49-07:00, akpm@osdl.org [PATCH] ppc/ppc64: Add posix message queue syscalls From: Benjamin Herrenschmidt This patch adds the posix message queue syscalls to ppc32 and 64 and fixes our implementation of compat copy siginfo to 32 bits userland which wasn't using the si_code but still doing a switch/case on the signal number. I also reserved some syscalls for the numa API ChangeSet@1.1860.3.4, 2004-04-19 11:42:50-07:00, bbuesker@qualcomm.com [IPSEC]: Add SPD priority for PF_KEY interface. ChangeSet@1.1860.3.3, 2004-04-19 11:42:10-07:00, herbert@gondor.apana.org.au [IPV6]: Prevent IPV6=m and IP6_NF_QUEUE=y ChangeSet@1.1860.3.2, 2004-04-19 11:41:20-07:00, akpm@osdl.org [NET]: Fix pc300_drv warnings. ChangeSet@1.1860.3.1, 2004-04-19 11:40:41-07:00, akpm@osdl.org [ATM]: Warning fix for lec.h ChangeSet@1.1858.1.2, 2004-04-19 10:35:59-07:00, jakub@redhat.com [SPARC]: Add MQ syscall support. ChangeSet@1.1878, 2004-04-19 13:04:06-04:00, proski@gnu.org [PATCH] Tulip endianess fix My tulip ethernet card doesn't work on Blue&White G3 PowerMac with Linux 2.6.5-rc2. The card is shown by lspci as 01:03.0 Ethernet controller: Linksys Network Everywhere Fast Ethernet 10/100 model NC100 (rev 11) The kernel detects it as "ADMtek Comet rev 17". The MAC address reported by the kernel looked obviously wrong. Also, I could only ping the system successfully if the interface was in promiscuous mode (running Ethereal). Those two symptoms indicated two different problems - one for reading the MAC address from the card on module load (tulip_init_one), and the other for writing the address to the card when the interface was brought up (tulip_up). I have fixed both, and here's the explanation: tulip_init_one: When reading the first 4 bytes of the address, inl() returns the same data to the CPU on all platforms, interpreting the data from the lowest port address as the least significant byte. In other words, I/O is little endian on all platforms; it's the memory that differs across platforms. We want to write the data to memory preserving little-endianness of the PCI bus. To force little endian write to the memory, the data should be converted to the little endian format. When reading the remaining 2 bytes, the CPU gets them in 2 least significant bytes. To write those 2 bytes to the memory in a 16-bit operation, they should be byte-swapped for the 16-bit operation. tulip_up: The first 4 bytes are processed correctly, but the code is confusing. Reading from memory needs conversion to CPU format, while writing to I/O ports doesn't. So I replaced cpu_to_le32() to le32_to_cpu(). The second 2 bytes are read in a 16-bit memory operation, so they should be passed to le16_to_cpu() rather than cpu_to_le32() to make them CPU independent and suitable for outl(). All those conversions do nothing on little-endian machines, so they should not be affected. The patch has been tested. The driver is working fine. ping is OK, ssh is OK, X11 over ssh is OK. Even netconsole is working fine. ChangeSet@1.1877, 2004-04-19 13:02:52-04:00, daniel.ritz@gmx.ch [PATCH] missing s/dev->priv/netdev_priv(dev) in drivers/net/pcmcia/ On Wednesday 24 March 2004 23:25, Jeff Garzik wrote: > Daniel Ritz wrote: > > clean up the last two instances of dev->priv in drivers/net/pcmcia. > > against 2.6.5-rc2-bk. > > > > --- 1.27/drivers/net/pcmcia/3c589_cs.c Wed Mar 3 01:03:51 2004 > > +++ edited/drivers/net/pcmcia/3c589_cs.c Wed Mar 24 22:29:35 2004 > > @@ -716,7 +716,7 @@ > > "status %4.4x.\n", dev->name, (long)skb->len, > > inw(ioaddr + EL3_STATUS)); > > > > - ((struct el3_private *)dev->priv)->stats.tx_bytes += skb->len; > > + ((struct el3_private *)netdev_priv(dev))->stats.tx_bytes += skb->len; > > > > /* Put out the doubleword header... */ > > outw(skb->len, ioaddr + TX_FIFO); > > --- 1.24/drivers/net/pcmcia/ibmtr_cs.c Wed Mar 3 01:06:03 2004 > > +++ edited/drivers/net/pcmcia/ibmtr_cs.c Wed Mar 24 22:29:51 2004 > > @@ -444,7 +444,7 @@ > > link->state &= ~DEV_PRESENT; > > if (link->state & DEV_CONFIG) { > > /* set flag to bypass normal interrupt code */ > > - ((struct tok_info *)dev->priv)->sram_virt |= 1; > > + ((struct tok_info *)netdev_priv(dev))->sram_virt |= 1; > > netif_device_detach(dev); > > ibmtr_release(link); > > > although the patch is OK, the code itself is a bit yucky. > > Can you please create a temporary variable, of struct el3_private or > tok_info type, and eliminate that cast? > > struct el3_private *priv = netdev_priv(dev); > priv->stats.tx_bytes += skb->len; > > Much nicer :) > agreed. here we go... ChangeSet@1.1876, 2004-04-19 13:01:38-04:00, akpm@osdl.org [PATCH] Call SET_NETDEV_DEV() in a bunch of net drivers Used for sysfs support. ChangeSet@1.1875, 2004-04-19 13:00:12-04:00, brazilnut@us.ibm.com [PATCH] pcnet32.c add support for 79C976 Please apply the following patch to 2.6.5-rc2-bk9 and 2.4.26-rc1 to include support for the 79C976. Tested on IA32. ChangeSet@1.1874, 2004-04-19 13:00:04-04:00, shemminger@osdl.org [PATCH] remove 8139too ring size option. On Wed, 31 Mar 2004 15:05:16 -0500 Jeff Garzik wrote: > I really should remove the ability to configure 8139_RXBUF_IDX=3. ChangeSet@1.1873, 2004-04-19 12:58:55-04:00, achirica@telefonica.net [PATCH] airo: Fix suspend support ChangeSet@1.1860.1.1, 2004-04-19 12:54:45-04:00, bjorn.helgaas@hp.com [PATCH] Fix hw_random build on ia64 The following patch allows hw_random.c to build on ia64. (The problem was just that the VIA stuff has i386 assembly in it. The current code only probes for VIA on i386 anyway, so this patch just adds more ifdefs so the VIA code is only built for i386.) ChangeSet@1.1872, 2004-04-19 12:50:20-04:00, rmk@arm.linux.org.uk [PATCH] fix arm/etherh.c On Tue, Apr 13, 2004 at 02:35:40PM -0400, Jeff Garzik wrote: > Russell, > > Would you be willing to provide an updated diff of this? I didn't particularly like the PRIV() method implemented previously - gcc appears to want to avoid some optimisations it if its an inline function rather than a macro. Also, 'ei_local' may look unused in some functions, but it's your typical hidden-use-in-a-macro crap which 8390 likes. ChangeSet@1.1871, 2004-04-19 12:49:10-04:00, shemminger@osdl.org [PATCH] Mixed PCI/ISA device name conflicts In systems with mixed network cards, and all drivers compiled into the kernel; the PCI device (eth0) will get probed first, before the ISA. The problem is that the ISA device can mistakenly try to probe for eth0. The problem is that the ISA driver will not detect the failure until it goes to call register_netdevice, and not all drivers have perfect error unwind code. This patch short circuits the device probe, so it won't bother looking for devices that already are registered. ChangeSet@1.1870, 2004-04-19 12:46:18-04:00, chrisw@osdl.org [PATCH] e1000: fix probable security hole * Ken Ashcraft (ken@coverity.com) wrote: > [BUG] > /home/kash/linux/linux-2.6.5/drivers/net/e1000/e1000_ethtool.c:1494:e1000_ethtool_ioctl: ERROR:TAINT: 1487:1494:Passing unbounded user value "(regs).len" as arg 2 to function "copy_to_user", which uses it unsafely in model [SOURCE_MODEL=(lib,copy_from_user,user,taintscalar)] [SINK_MODEL=(lib,copy_to_user,user,trustingsink)] [PATH=] > } > case ETHTOOL_GREGS: { > struct ethtool_regs regs = {ETHTOOL_GREGS}; > uint32_t regs_buff[E1000_REGS_LEN]; > > Start ---> > if(copy_from_user(®s, addr, sizeof(regs))) > return -EFAULT; > e1000_ethtool_gregs(adapter, ®s, regs_buff); > if(copy_to_user(addr, ®s, sizeof(regs))) > return -EFAULT; > > addr += offsetof(struct ethtool_regs, data); > Error ---> > if(copy_to_user(addr, regs_buff, regs.len)) > return -EFAULT; > > return 0; Looks like a bug. Possible patch below zeros the buffer (since it's not filled completely by e1000_ethtool_gregs()), and truncates len. ChangeSet@1.1869, 2004-04-19 12:43:04-04:00, bunk@fs.tum.de [PATCH] fix warning in drivers/net/tulip/timer.c I get the following warning in 2.6.5-mm6 and 2.6.6-rc1: <-- snip --> ... CC drivers/net/tulip/timer.o drivers/net/tulip/timer.c: In function `comet_timer': drivers/net/tulip/timer.c:156: warning: unused variable `ioaddr' ... <-- snip --> Since the [netdrvr tulip] add MII support for Comet chips patch has removed the only use of this variable, the fix is simple: ChangeSet@1.1868, 2004-04-19 12:42:41-04:00, jgarzik@redhat.com [netdrvr r8169] remove driver-local DMA_xxBIT_MASK definitions They are now upstream, we don't need driver-local ones anymore. ChangeSet@1.1867, 2004-04-19 12:41:18-04:00, jgarzik@redhat.com [netdrvr rcpci] Remove bogus check in ->remove handler ChangeSet@1.1866, 2004-04-19 12:39:30-04:00, jgarzik@redhat.com [hamradio baycom] Remove bogus check in interrupt handler Tangentially noticed by Stanford checker. ChangeSet@1.1865, 2004-04-19 12:38:01-04:00, chrisw@osdl.org [PATCH] remove redundant check in de2104x ->get_regs() Trivial patchlet...ethtool core already caps regs.len at a max of ->get_regs_len(): reglen = ops->get_regs_len(dev); if (regs.len > reglen) regs.len = reglen; So doing the same in the in de2104x driver ->get_regs() is redundant. Patch below simply removes it to clarify the guarantee of the API. ChangeSet@1.1864, 2004-04-19 12:26:30-04:00, chrisw@osdl.org [PATCH] wan sdla: fix probable security hole > [BUG] minor > /home/kash/linux/linux-2.6.5/drivers/net/wan/sdla.c:1206:sdla_xfer: > ERROR:TAINT: 1201:1206:Passing unbounded user value "(mem).len" as arg 0 > to function "kmalloc", which uses it unsafely in model > [SOURCE_MODEL=(lib,copy_from_user,user,taintscalar)] > [SINK_MODEL=(lib,kmalloc,user,trustingsink)] [MINOR] [PATH=] [Also > used at, line 1219 in argument 0 to function "kmalloc"] > static int sdla_xfer(struct net_device *dev, struct sdla_mem *info, int > read) > { > struct sdla_mem mem; > char *temp; > > Start ---> > if(copy_from_user(&mem, info, sizeof(mem))) > return -EFAULT; > > if (read) > { > Error ---> > temp = kmalloc(mem.len, GFP_KERNEL); > if (!temp) > return(-ENOMEM); > sdla_read(dev, mem.addr, temp, mem.len); Hrm, I believe you could use this to read 128k of kernel memory. sdla_read() takes len as a short, whereas mem.len is an int. So, if mem.len == 0x20000, the allocation could still succeed. When cast to short, len will be 0x0, causing the read loop to copy nothing into the buffer. At least it's protected by a capable() check. I don't know what proper upper bound is for this hardware, or how much it's used/cared about. Simple memset() is trivial fix. ChangeSet@1.1863, 2004-04-19 12:22:28-04:00, jgarzik@redhat.com [wireless orinoco] Remove bogus !dev check Caught by Stanford checker. ChangeSet@1.1862, 2004-04-19 11:57:04-04:00, akpm@osdl.org [PATCH] 3c509 oops fix If __ISAPNP__ and CONFIG_X86_PC9800 are not set, we forget to link the device into the global chain and el3_init_module dereferences NULL. ChangeSet@1.1861, 2004-04-19 11:56:56-04:00, olh@suse.de [PATCH] mace register_netdev printk small cosmetic fix for powermac mace network driver. eth%d: MACE at 00:05:02:f4:1b:1d, chip revision 25.64 vs. eth0: MACE at 00:05:02:f4:1b:1d, chip revision 25.64 ChangeSet@1.1860, 2004-04-18 22:12:31-07:00, torvalds@ppc970.osdl.org Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1859, 2004-04-18 22:04:12-07:00, benh@kernel.crashing.org [PATCH] Fix typo in previous patch This is my brown paper bag day, I sent you the wrong patch for fixing the deadlock in rtas.c, here's one to apply on top of current bk that fixes build. ChangeSet@1.1812.6.1, 2004-04-18 22:32:07+01:00, rmk@flint.arm.linux.org.uk [ARM] Clean up ARM includes This removes a number of unnecessary includes from the ARM specific files throughout the kernel. Most notably asm/pgalloc.h is needlessly included in several places. There were some places including it as a means to get at the cache flushing functions, so this has been corrected. ChangeSet@1.1858, 2004-04-18 12:18:59-07:00, torvalds@ppc970.osdl.org Fix permission problem on include/video/neomagic.h ChangeSet@1.1857, 2004-04-18 11:14:36-07:00, geert@linux-m68k.org [PATCH] Amiga Zorro8390 Ethernet KERN_* Amiga Zorro8390 Ethernet: Add KERN_* prefixes to printk() messages ChangeSet@1.1856, 2004-04-18 11:14:22-07:00, geert@linux-m68k.org [PATCH] Amiga Hydra Ethernet KERN_* Amiga Hydra Ethernet: Add KERN_* prefixes to printk() messages ChangeSet@1.1855, 2004-04-18 11:14:10-07:00, geert@linux-m68k.org [PATCH] Amiga Ariadne Ethernet KERN_* Amiga Ariadne Ethernet: Add KERN_* prefixes to printk() messages ChangeSet@1.1854, 2004-04-18 11:13:57-07:00, geert@linux-m68k.org [PATCH] Amiga A2065 Ethernet debug Amiga A2065 Ethernet: Add missing variable in debug code ChangeSet@1.1853, 2004-04-18 10:56:22-07:00, akpm@osdl.org [PATCH] fix visws build From: Andrey Panin this small patch fixes visws build error in 2.6.5. ChangeSet@1.1852, 2004-04-18 10:56:09-07:00, akpm@osdl.org [PATCH] Fix laptop mode writeback triggered by hdparm -y. From: Bart Samwel Currently, an `hdparm -Y' can trigger a sync in laptop mode. We should only count fs-originated requests as being "disk activity". ChangeSet@1.1851, 2004-04-18 10:55:56-07:00, akpm@osdl.org [PATCH] set_anon_super locking fix Take the idr's lock while removing an element on the error path. Spotted by Nathan Lynch . ChangeSet@1.1850, 2004-04-18 10:55:43-07:00, akpm@osdl.org [PATCH] Print warning for common symbols in modules From: Rusty Russell People still build modules wrong, particularly without -fno-common. The resulting modules don't load, but we should at least warn about it. ChangeSet@1.1849, 2004-04-18 10:55:31-07:00, akpm@osdl.org [PATCH] jbd: journal_dirty_metadata locking speedup Reduce the locking coverage of the oft-used j_list_lock: the per-bh jbd_lock_bh_state() gives us sufficient locking of buffer_head and journal_head internals. ChangeSet@1.1848, 2004-04-18 10:55:18-07:00, akpm@osdl.org [PATCH] rmap: nonlinear truncation From: Hugh Dickins The earlier changes introducing PageAnon left truncated pages mapped into nonlinear vmas unswappable. Once we go to object-based rmap, it's impossible to find where file page is mapped once page->mapping cleared: switching them to anonymous is odd, and breaks strict commit accounting. So now handle truncation of nonlinear vmas correctly. And factor in Daniel's cluster filesystem needs while we're there: when invalidating local cache, we do want to unmap shared pages from all mms, but we do not want to discard private COWed modifications of those pages (which truncation discards to satisfy the SIGBUS semantics demanded by specs). Drew from Daniel's patch (LKML 2 Mar 04), but didn't always follow it; fewer name changes, but still some - "unmap" rather than "invalidate". zap_page_range is not exported, safe to give it and all the too-many layers an extra zap_details arg, in normal cases just NULL. Given details, zap_pte_range checks page mapping or index to skip anon or untruncated pages. I didn't realize before implementing, that in nonlinear case, it should set a file pte when truncating - otherwise linear pages might appear in place of SIGBUS. I suspect this implies that ->populate functions ought to set file ptes beyond EOF instead of failing, but haven't changed them as yet. To avoid making yet another copy of that ugly linear pgidx test, added inline function linear_page_index (to pagemap.h to get PAGE_CACHE_SIZE, though as usual things don't really work if it differs from PAGE_SIZE). Ooh, I thought I'd removed ___add_to_page_cache last time, do so now. unmap_page_range static, shift its hugepage check up into sole caller unmap_vmas. Killed "killme" debug from unmap_vmas, not seen it trigger. unmap_mapping_range is exported without restriction: I'm one of those who believe it should be generally available. But I'm wrongly placed to decide that, probably just sob quietly to myself if _GPL added later. ChangeSet@1.1847, 2004-04-18 10:55:06-07:00, akpm@osdl.org [PATCH] rmap: swap_unplug page From: Hugh Dickins Good example of "swapper_space considered harmful": swap_unplug_io_fn was originally designed for calling via swapper_space.backing_dev_info; but that way it loses track of which device is to be unplugged, so had to unplug all swap devices. But now sync_page tests SwapCache anyway, can call swap_unplug_io_fn with page, which leads direct to the device. Reverted -mc4's CONFIG_SWAP=n fix, just add another NOTHING for it. Reverted -mc3's editorial adjustments to swap_backing_dev_info and swapper_space initializations: they document the few fields which are actually used now, as comment above them says (sound of slapped wrist). ChangeSet@1.1846, 2004-04-18 10:54:52-07:00, akpm@osdl.org [PATCH] rmap: flush_dcache revisited From: Hugh Dickins One of the callers of flush_dcache_page is do_generic_mapping_read, where file is read without i_sem and without page lock: concurrent truncation may at any moment remove page from cache, NULLing ->mapping, making flush_dcache_page liable to oops. Put result of page_mapping in a local variable and apply mapping_mapped to that (if we were to check for NULL within mapping_mapped, it's unclear whether to say yes or no). parisc and arm do have other locking unsafety in their i_mmap(_shared) searching, but that's a larger issue to be dealt with down the line. ChangeSet@1.1845, 2004-04-18 10:54:39-07:00, akpm@osdl.org [PATCH] Oprofilefs cant handle > 99 cpus From: Anton Blanchard Oprofilefs cant handle > 99 cpus. This should fix it. ChangeSet@1.1844, 2004-04-18 10:54:27-07:00, akpm@osdl.org [PATCH] Fix unix module From: Rusty Russell # lsmod Module Size Used by 1 26060 6 # The compiler #define's unix to 1: we use -DKBUILD_MODNAME=unix. We used to #undef unix at the top of af_unix.c, but now the name is inserted by modpost, that doesn't help. #undef unix in modpost.c's generated C file. ChangeSet@1.1843, 2004-04-18 10:54:15-07:00, akpm@osdl.org [PATCH] ppc64: Fix CPU hot unplug deadlock From: Benjamin Herrenschmidt My RTAS locking fixes incorrectly added a spinlock around the function used to stop a CPU, that function never returns, thus the lock becomes stale. The correct fix is to disable interrupts instead (the RTAS params beeing per-CPU, this should be safe enough) ChangeSet@1.1842, 2004-04-18 10:51:30-07:00, torvalds@ppc970.osdl.org Allow non-LFS sendfile to work on LFS files. But obviously only if we're not passing in any offset pointer. This is how 2.4.x worked, and vsftpd relies on it. Bug reported by Chris < chris@scary.beasts.org> ChangeSet@1.1812.1.12, 2004-04-17 17:50:14-07:00, hugh@veritas.com [PATCH] Fix vma corruption It occurred to me that if vma and new_vma are one and the same, then vma_relink_file will not do a good job of linking it after itself - in that pretty unlikely case when move_page_tables fails. And more generally, whenever copy_vma's vma_merge succeeds, we have no guarantee that old vma comes before new_vma in the i_mmap lists, as we need to satisfy Rajesh's point: that ordering is only guaranteed in the newly allocated case. We have to abandon the ordering method when/if we move from lists to prio_trees, so this patch switches to the less glamorous use of i_shared_sem exclusion, as in my prio_tree mremap. ChangeSet@1.1812.1.11, 2004-04-17 17:45:53-07:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] Remove unused 'kobject' from superblock The field in question is a) unused b) damn next to impossible to use correctly, due to struct super_block lifetime and locking rules. ChangeSet@1.1812.5.32, 2004-04-17 17:32:46-07:00, akpm@osdl.org [PATCH] ARM-related ptep_to_address() fix From: William Lee Irwin III rmk mentioned that ARM was borked as the relation, assumed by generic rmap, PTRS_PER_PTE*sizeof(pte_t) == PAGE_SIZE, fails to hold. The following patch, developed jointly with him (or depending on POV, by him with me acting as codemonkey), is reported to resolve the issue. Specifically, while ARM dedicates an entire PAGE_SIZE -sized block of memory to each PTE table, the PTE table itself only spans half that, the remainder being dedicated to hardware-interpreted structures. As the hardware structure must be contiguous, wider ptes can't be used. So the core-visible PTE table only spans PAGE_SIZE/2 bytes, violating the assumption. This corrects masking and scaling done in ptep_to_address(). ChangeSet@1.1812.5.31, 2004-04-17 17:29:32-07:00, akpm@osdl.org [PATCH] aty128fb dereference before null check From: Dave Jones ChangeSet@1.1812.5.30, 2004-04-17 17:29:22-07:00, akpm@osdl.org [PATCH] mqueue permission fix From: Manfred Spraul Any user can delete any entries in a mqueue mounted filesystem. The attached patch prevents that. - remove the writable test from mq_unlink. - set the sticky bit in the root inode. This affects both mq_unlink and sys_unlink: only the owner (and root) should be allowed to remove queues. ChangeSet@1.1812.5.29, 2004-04-17 17:29:12-07:00, akpm@osdl.org [PATCH] Fix bogus get_page() calls in hugepage code From: David Gibson Some versions of follow_huge_addr() and follow_huge_pmd() are doing a get_page() on the target page. They shouldn't: follow_page() returns an unpinned page and it is the caller's responsibility to pin the page (if desired) before dropping page_table_lock. ChangeSet@1.1812.5.28, 2004-04-17 17:29:02-07:00, akpm@osdl.org [PATCH] ppc64: yet another hugepage cleanup From: David Gibson Trivial cleanup to flush_hash_hugepage() in the ppc64 hugepage code. ChangeSet@1.1812.5.27, 2004-04-17 17:28:52-07:00, akpm@osdl.org [PATCH] ipmi build fix From: Geert Uytterhoeven While compiling drivers/char/ipmi/ipmi_si_intf.c in 2.6.6-rc1 on m68k, I noticed a missing include (needed for disable_irq_nosync() and enable_irq()) ChangeSet@1.1812.5.26, 2004-04-17 17:28:36-07:00, akpm@osdl.org [PATCH] floppy98.c build fixes From: "Randy.Dunlap" floppy98.c (along with other PC-9800 files) has not been updated lately. It won't build currently (2.6.5). This patch makes floppy98 build cleanly. ChangeSet@1.1812.5.25, 2004-04-17 17:28:24-07:00, akpm@osdl.org [PATCH] reiserfs: remove final sleep_on From: Chris Mason Get rid of the last sleep_on in the reiserfs code ChangeSet@1.1812.5.24, 2004-04-17 17:28:13-07:00, akpm@osdl.org [PATCH] reiserfs: fsync() speedup From: Chris Mason Updates the reiserfs-logging improvements to use schedule_timeout instead of yield when letting the transaction grow a little before forcing a commit for fsync/O_SYNC/O_DIRECT. Also, when one process forces a transaction to end and plans on doing the commit (like fsync), it sets a flag on the transaction so the journal code knows not to bother kicking the journal work queue. queue_delayed_work is used so that if we get a bunch of tiny transactions ended quickly, we aren't constantly kicking the work queue. These significantly improve reiserfs performance during fsync heavy workloads. ChangeSet@1.1812.5.23, 2004-04-17 17:28:02-07:00, akpm@osdl.org [PATCH] Add "commit=0" to reiserfs From: Bart Samwel Add support for value 0 to the commit option of reiserfs. Means "restore to the default value". For the maximum commit age, this default value is normally read from the journal; this patch adds an extra variable to cache the default value for the maximum commit age. ChangeSet@1.1812.5.22, 2004-04-17 17:27:51-07:00, akpm@osdl.org [PATCH] ppc64: hugepage cleanup From: David Gibson This is a small cleanup to the PPC64 hugepage code. It removes an unhelpful function, removing some studlyCaps in the process. It was originally this way to match the normal page path, but that has all been rewritten since. ChangeSet@1.1812.5.21, 2004-04-17 17:27:40-07:00, akpm@osdl.org [PATCH] Fix mq 32-bit compatibility From: Jakub Jelinek The first change removes just a useless put_user (si_int and si_ptr are part of the same union, si_ptr is on all arches covering whole union), the rest is fixes for signal handling of SI_MESGQ. ChangeSet@1.1812.5.20, 2004-04-17 17:27:28-07:00, akpm@osdl.org [PATCH] remove buffer_error() From: Jeff Garzik It was debug code, no longer required. ChangeSet@1.1812.5.19, 2004-04-17 17:27:17-07:00, akpm@osdl.org [PATCH] PCI MSI Kconfig consolidation From: Bjorn Helgaas This consolidates the PCI MSI configuration into drivers/pci/Kconfig, removing it from the i386, x86_64, and ia64 Kconfig. It also changes the default for ia64 from "y" to "n". The default on i386 is "n" already, and I'm not sure why ia64 should be different. ChangeSet@1.1812.5.18, 2004-04-17 17:27:06-07:00, akpm@osdl.org [PATCH] kill submit_{bh,bio} return value From: Jeff Garzik Nobody ever checks the return value of submit_bh(), and submit_bh() is the only caller that checks the submit_bio() return value. This changes the kernel I/O submission path -- a fast path -- so this cleanup is also a microoptimization. ChangeSet@1.1812.5.17, 2004-04-17 17:26:55-07:00, akpm@osdl.org [PATCH] kNFSdv4: Implement server-side reboot recovery (mostly) From: NeilBrown From: "J. Bruce Fields" From: Andros: Implement server-side reboot recovery (server now handles open and lock reclaims). Not completely to spec: we don't yet store the state in stable storage that would be required to recover correctly in certain situations. ChangeSet@1.1812.5.16, 2004-04-17 17:26:39-07:00, akpm@osdl.org [PATCH] kNFSdv4: Set credentials properly when puutrootfh is used From: NeilBrown The credentials (uid/gid) of a process are set when a filehandle is verified. Nfsv4 allows requests without an explicit filehandle (instead, an implicit 'root' filehandle) so we much make sure the credentials are set for these requests too. From: "J. Bruce Fields" From: Andros: added a call to nfsd_setuser in nfsd4_putrootfh so that nfsd runs as the rpc->cred user. ChangeSet@1.1812.5.15, 2004-04-17 17:26:28-07:00, akpm@osdl.org [PATCH] kNFSdv4: Improve how locking copes with replays From: NeilBrown From: "J. Bruce Fields" From: Andros: Hold state_lock longer so the stateowner doesn't diseappear out from under us before we get the chance to encode the replay. Don't attempt to save replay if we failed to find a stateowner. ChangeSet@1.1812.5.14, 2004-04-17 17:26:12-07:00, akpm@osdl.org [PATCH] kNFSdv4: Allow locku replays aswell From: NeilBrown From: "J. Bruce Fields" From: Andros: locku replies should be saved for possible replay as well. ChangeSet@1.1812.5.13, 2004-04-17 17:25:57-07:00, akpm@osdl.org [PATCH] kNFSdv4: Keep state to allow replays for 'close' to work. From: NeilBrown From: "J. Bruce Fields" From: Andros: Idea is to keep around a list of openowners recently released by closes, and make sure they stay around long enough so that replays still work. ChangeSet@1.1812.5.12, 2004-04-17 17:25:42-07:00, akpm@osdl.org [PATCH] kNFSdv4: Fix bad error returm from svcauth_gss_accept From: NeilBrown From: "J. Bruce Fields" Error return when the client supplies a bad service should be badcred. ChangeSet@1.1812.5.11, 2004-04-17 17:25:31-07:00, akpm@osdl.org [PATCH] kNFSdv4: nfsd4_readdir fixes From: NeilBrown From: "J. Bruce Fields" Fix out-of-spec errors in nfs4 readdir. Add checks for bad cookie values. (plus compile fix from akpm) ChangeSet@1.1812.5.10, 2004-04-17 17:25:21-07:00, akpm@osdl.org [PATCH] dm: Use an EMIT macro in the status function. From: Kevin Corry Striped: Use an EMIT macro in the status function. ChangeSet@1.1812.5.9, 2004-04-17 17:25:10-07:00, akpm@osdl.org [PATCH] dm: avoid ioctl buffer overrun From: Kevin Corry dm-ioctl.c::retrieve_status(): Prevent overrunning the ioctl buffer by making sure we don't call the target status routine with a buffer size limit of zero. [Kevin Corry, Alasdair Kergon] ChangeSet@1.1812.5.8, 2004-04-17 17:24:54-07:00, akpm@osdl.org [PATCH] dm: fix a comment From: Kevin Corry Clarify the comment regarding the "next" field in struct dm_target_spec. The "next" field has different behavior if you're performing a DM_TABLE_STATUS command than it does if you're performing a DM_TABLE_LOAD command. See populate_table() and retrieve_status() in drivers/md/dm-ioctl.c for more details on how this field is used. ChangeSet@1.1812.5.7, 2004-04-17 17:24:39-07:00, akpm@osdl.org [PATCH] dm: Correctly align the dm_target_spec structures during retrieve_status(). From: Kevin Corry Correctly align the dm_target_spec structures during retrieve_status(). ChangeSet@1.1812.5.6, 2004-04-17 17:24:28-07:00, akpm@osdl.org [PATCH] dm: Log an error if the target has unknown target type, or zero length. From: Kevin Corry Log an error if the target has unknown target type, or zero length. ChangeSet@1.1812.5.5, 2004-04-17 17:24:16-07:00, akpm@osdl.org [PATCH] dm: Use wake_up() rather than wake_up_interruptible() From: Kevin Corry dm.c: Use wake_up() rather than wake_up_interruptible() with the eventq. ChangeSet@1.1812.5.4, 2004-04-17 17:24:04-07:00, akpm@osdl.org [PATCH] dm: Handle interrupts within suspend. From: Kevin Corry Handle interrupts within suspend. ChangeSet@1.1812.5.3, 2004-04-17 17:23:52-07:00, akpm@osdl.org [PATCH] dm: Check the uptodate flag in sub-bios to see if there was an error. From: Kevin Corry Check the uptodate flag in sub-bios to see if there was an error. [Mike Christie] ChangeSet@1.1812.5.2, 2004-04-17 17:23:39-07:00, akpm@osdl.org [PATCH] dm: Fix 64/32 bit ioctl problems. From: Kevin Corry Fix 64/32 bit ioctl problems. ChangeSet@1.1812.5.1, 2004-04-17 17:08:23-07:00, vandrove@vc.cvut.cz [PATCH] Fix exec in multithreaded application The recent controlling terminal changes broke exec from multithreaded application because de_thread was not upgraded to new arrangement. I know that I should not have LD_PRELOAD library which automatically creates one thread, but it looked like a cool solution to the problem I had. de_thread must initialize the controlling terminal information in the new thread group. ChangeSet@1.1812.4.1, 2004-04-17 22:19:03+01:00, rmk@flint.arm.linux.org.uk [ARM] Add detailed documentation concerning ARM page tables This adds detailed documentation concerning how we map the Linux page table structure onto the hardware tables on ARM. In addition, it also adds documentation describing how we emulate the "dirty" and "young" or "accessed" page table bits. This should be of interest to Linux MM developers. ChangeSet@1.1812.3.2, 2004-04-17 11:08:39+01:00, rmk@flint.arm.linux.org.uk [SERIAL] Use module_param/module_param_array Update serial to use new module parameters rather than MODULE_PARM. ChangeSet@1.1812.3.1, 2004-04-17 10:31:25+01:00, rmk@flint.arm.linux.org.uk [SERIAL] Remove check_region() ChangeSet@1.1812.1.9, 2004-04-17 09:41:18+01:00, proski@org.rmk.(none) [PCMCIA] Conversion to module_param Patch from: Pavel Roskin As it turns out, mixing MODULE_PARM and module_param in one module is wrong. The parameters specified in module_param are ignored. I've just posted a patch to LKML that will detect this condition and warn about it. The new debugging code used the new-style module_param, which means that all instances of MODULE_PARM should be converted. The attached patch does that. An additional bonus is that module_param_array provides the number of array elements. This allowed me to change tcic.c and i82365.c to use this number for IRQ list. This change was tested with i82365. If "irq_list" is not specified, irq_list_count is 0. I set all permissions to 0444 to be safe. I think we have no secrets from the users regarding those parameters. If some parameters can be changed safely at the runtime, the permissions could be changed to 0644. I didn't examine how safe (and how useful) it would be, so it's 0444 for now. ChangeSet@1.1840, 2004-04-16 22:50:51-07:00, davem@nuts.davemloft.net Merge nuts.davemloft.net:/disk1/BK/network-2.6 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.1839, 2004-04-16 22:29:09-07:00, davem@nuts.davemloft.net [IPV6]: Fix esp6.c typo in LIMIT_NETDEBUG changes. ChangeSet@1.1812.1.8, 2004-04-16 17:50:41-07:00, torvalds@ppc970.osdl.org Merge evo:v2.6/linux into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1806.4.2, 2004-04-16 17:49:32-07:00, torvalds@evo.osdl.org Add sparse __safe annotation ChangeSet@1.1806.4.1, 2004-04-16 17:48:52-07:00, torvalds@evo.osdl.org Make sock_no_{get|set}opt() use the proper __user annotation ChangeSet@1.1812.1.7, 2004-04-16 16:18:05-07:00, marcel@holtmann.org [PATCH] Fix typo in the openpromfs remount patch The just merged openpromfs remount patch contains a silly typo in the field of the super_operations structure. Fixed like this. ChangeSet@1.1812.1.6, 2004-04-16 16:17:28-07:00, torvalds@ppc970.osdl.org Merge bk://gkernel.bkbits.net/misc-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1812.1.5, 2004-04-16 16:16:31-07:00, torvalds@ppc970.osdl.org Merge bk://gkernel.bkbits.net/net-drivers-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1838, 2004-04-16 15:55:37-07:00, davem@nuts.davemloft.net [BRIDGE]: br_fdb.c needs init.h ChangeSet@1.1812.2.10, 2004-04-16 15:03:33-07:00, davej@redhat.com [PATCH] Fix mprotect bogus check. If we want to trap NULL vma's, we'd better be sure that we don't dereference it first.. ChangeSet@1.1812.2.9, 2004-04-16 15:03:20-07:00, davej@redhat.com [PATCH] Fix edd driver dereferencing before pointer checks. Lots of occurences of the same bug.. ChangeSet@1.1812.2.8, 2004-04-16 15:03:09-07:00, B.Zolnierkiewicz@elka.pw.edu.pl [PATCH] ide-probe.c: SanDisk is flash From: Meelis Roos This is self-explanatory - former SunDisk renamed itself to SanDisk and now there are flash disks with both names. ChangeSet@1.1837, 2004-04-16 14:59:31-07:00, shemminger@osdl.org [NET]: Fix lapbether bad scheduling while atomic. Bring up/down network devices with lapbether causes scheduling while atomic (if preempt enabled). The calls to rcu_read_lock are unnecessary since lapb_device_event is called from notifier with the rtnetlink semaphore held, it is already protected from the labp_devices list changing. ChangeSet@1.1836, 2004-04-16 14:53:50-07:00, takamiya@po.ntts.co.jp [IPV6]: Fix OOPS in udp6 with extension headers using ancillary data. ChangeSet@1.1835, 2004-04-16 14:52:22-07:00, nakam@linux-ipv6.org [IPV6]: Fix IPSEC AH typo. ChangeSet@1.1834, 2004-04-16 14:51:15-07:00, yoshfuji@linux-ipv6.org [IPV6]: Use IANA icmpv6 type for MLDv2 report. ChangeSet@1.1833, 2004-04-16 14:50:17-07:00, jt@bougret.hpl.hp.com [IRDA]: Replace sleep_on with wait_event From Stephen Hemminger. ChangeSet@1.1832, 2004-04-16 14:49:46-07:00, jt@bougret.hpl.hp.com [IRDA]: irlan_eth cleanup. Use IrTTP flow control to stop/wake netif From Stephen Hemminger. Change irlan_eth device initialization: *bug* address never set in DIRECT mode because access not set in alloc_netdev -> irlan_eth_setup path + make eth_XXX handles static and provide alloc_irlandev hook + use netdev_priv (and get rid of truly impossible ASSERT's) + use skb_queue_purge ChangeSet@1.1831, 2004-04-16 14:48:29-07:00, jt@bougret.hpl.hp.com [IRDA]: irlan_common cleanup. Minor type changes in irlan_common for clarity: - use const - init and exit can be static - use skb_queue_purge to flush queue - get rid of noisy old comment From Stephen Hemminger. ChangeSet@1.1830, 2004-04-16 14:47:38-07:00, jt@bougret.hpl.hp.com [IRDA]: Rename handle_filter_request to irlan_filter_request. From Stephen Hemminger. ChangeSet@1.1829, 2004-04-16 14:47:03-07:00, jt@bougret.hpl.hp.com [IRDA]: Fix namespace pollution of print_ret_code. From Stephen Hemminger. ChangeSet@1.1828, 2004-04-16 14:46:32-07:00, jt@bougret.hpl.hp.com [IRDA]: Get rid of local CRC table in donauboe. From Stephen Hemminger. ChangeSet@1.1827, 2004-04-16 14:45:58-07:00, jt@bougret.hpl.hp.com [IRDA]: Fix handling of RD:RSP to be spec compliant From Martin Diehl. ChangeSet@1.1826, 2004-04-16 14:45:26-07:00, jt@bougret.hpl.hp.com [IRDA]: Convert vlsi_ir /proc/driver to seq_file. From Stephen Hemminger. ChangeSet@1.1809.1.2, 2004-04-16 14:30:18-07:00, mroos@linux.ee [SPARC64]: Fix binfmt_elf32.c warning by redefining TASK_SIZE. ChangeSet@1.1812.2.7, 2004-04-16 14:27:54-07:00, viro@www.linux.org.uk [PATCH] remount: mount flags filtering - we could pass MS_ACTIVE in mount flags and it would be passed into ->get_sb(), leading to interesting failure modes. This flag is only for internal use (it's set once fill_super is complete and reset before the inode eviction on umount); made sure that we never get tricked into having it set it too early. ChangeSet@1.1812.2.6, 2004-04-16 14:27:41-07:00, viro@www.linux.org.uk [PATCH] remount: forced-nodiratime filesystems - a bunch of filesystems force MS_NODIRATIME on mount but forgot to do the same on remount. Fixed. ChangeSet@1.1812.2.5, 2004-04-16 14:27:28-07:00, viro@www.linux.org.uk [PATCH] remount: forced-ro filesystems - a bunch of r/o filesystems did force MS_RDONLY on mount but forgot to do the same on remount. Fixed. ChangeSet@1.1812.2.4, 2004-04-16 14:27:14-07:00, viro@www.linux.org.uk [PATCH] remount: fs/jffs2 - jff2->remount_fs() was buggy - it played with sb->s_flags instead of doing modifications to *flags (->s_flags will be overwritten using *flags right after the call of ->remount_fs()). Moreover, it tried to do the wrong thing - it should just enforce noatime and be done with that. Fixed, ACKed by maintainer. ChangeSet@1.1812.2.3, 2004-04-16 14:27:00-07:00, viro@www.linux.org.uk [PATCH] remount: fs/openpromfs - we should force noatime both on mount and remount. Fixed. ChangeSet@1.1812.2.2, 2004-04-16 14:26:48-07:00, viro@www.linux.org.uk [PATCH] remount: fs/udf fixes - same problem as with sysv - mount-time checks for fs being good for writing are absent on remount. Check added. ChangeSet@1.1812.2.1, 2004-04-16 14:26:34-07:00, viro@www.linux.org.uk [PATCH] remount: fs/sysv fixes - several variants of sysv fs are supported only r/o. Driver does force r/o on mount, but doesn't do anything on remount. As the result, one can remount them r/w and results are Not Pretty(tm). Missing checks added, code cleaned up. - we had double-brelse() in v7fs - if sanity checks on root inode will succeed, but allocation of root dentry fails, we brelse() the same buffer_head twice. Fixed. ChangeSet@1.1825, 2004-04-16 14:23:28-07:00, shemminger@osdl.org [BRIDGE]: Replace CLEAR_BITMAP with memset. ChangeSet@1.1824, 2004-04-16 14:22:49-07:00, shemminger@osdl.org [BRIDGE]: FDB cache alloc. Since forwarding database gets a lot of memory alloc/free on a busy bridge, use kmem_cache_alloc to provide cache and better stats. ChangeSet@1.1823, 2004-04-16 14:21:57-07:00, shemminger@osdl.org [BRIDGE]: Support lots of 1k ports. Support >256 ports on a bridge. Use the suggestion of reducing the number of bits of priority and increasing the number of bits for port number. Easy to increase to even larger if necessary. ChangeSet@1.1822, 2004-04-16 14:21:12-07:00, shemminger@osdl.org [BRIDGE]: STP unsigned fields. Use correct types for fields related to spanning tree protocols. * costs are 32 bit unsigned * ports are 16 bit unsigned * booleans are bytes rather than bitfield * arrange for better packing ChangeSet@1.1821, 2004-04-16 14:19:54-07:00, shemminger@osdl.org [BRIDGE]: Forwarding database changes. Make forwarding database more robust. + Don't insert invalid ether address, + Report errors back so adding an interface to bridge can fail + get rid of unneeded explicit pads in data structure + replace bitfields with byte's for simple booleans. ChangeSet@1.1820, 2004-04-16 14:15:24-07:00, shemminger@osdl.org [BRIDGE]: Multicast address as const. ChangeSet@1.1819, 2004-04-16 14:14:41-07:00, shemminger@osdl.org [BRIDGE]: Use ethtool to get port speed. The bridge code needs to keep track of a cost estimate for each port in the bridge. Instead of a hack based on device name, try and use ethtool to get port speed from device. This has been tested on e100 (uses ethtool_ops) and e1000 (does ethtool the hard way) and dummy (no ethtool). Need to export dev_ethtool() to allow bridge module to get to it easily. Code takes care to maintain same locking and semantics as if ioctl was being done from application. ChangeSet@1.1818, 2004-04-16 14:13:29-07:00, shemminger@osdl.org [BRIDGE]: Make use of jiffies_to_clock. ChangeSet@1.1817, 2004-04-16 14:12:55-07:00, shemminger@osdl.org [BRIDGE]: Fix rmmod race. Fix observed race between removing bridge module and ip packets in flight. Need to remove the hook last, after all bridges are gone not the other way around. ChangeSet@1.1816, 2004-04-16 14:11:59-07:00, shemminger@osdl.org [BRIDGE]: Include file cleanup. Cleanup some of the include file's in the bridge code. * if_bridge.h defines net_bridge, but not needed as part of the API. * get rid of places that include if_bridge.h and uaccess.h but don't actually do API work. ChangeSet@1.1806.3.4, 2004-04-16 22:09:02+01:00, rmk@flint.arm.linux.org.uk [ARM] Add __user address space identifiers for sparse. ChangeSet@1.1806.3.3, 2004-04-16 22:02:08+01:00, rmk@flint.arm.linux.org.uk [ARM] Update mach-types file. ChangeSet@1.1815, 2004-04-16 13:56:23-07:00, arjanv@redhat.com [NET]: Add some sparse annotations to network driver stack. ChangeSet@1.1814, 2004-04-16 13:55:01-07:00, ak@suse.de [IPV6]: Limit network triggerable printks. ChangeSet@1.1806.3.2, 2004-04-16 21:54:40+01:00, rmk@flint.arm.linux.org.uk [ARM] Remove needless export of __do_softirq() ChangeSet@1.1813, 2004-04-16 13:49:08-07:00, ak@suse.de [NET]: Do lazy gettimeofday for network packets. ChangeSet@1.1809.1.1, 2004-04-16 12:30:50-07:00, davem@nuts.davemloft.net [SPARC64]: Fix branch prediction in switch_to(). ChangeSet@1.1812, 2004-04-16 11:36:57-07:00, davem@nuts.davemloft.net Merge ChangeSet@1.1810, 2004-04-16 10:37:13-07:00, davem@nuts.davemloft.net Merge. ChangeSet@1.1804.1.4, 2004-04-16 13:01:59-04:00, brazilnut@us.ibm.com [PATCH] pcnet32 transmit performance fix When the pcnet32 adapter is installed in a system with long PCI latency and the read burst bit is not set, performance on transmission is very low (under 20Mbit on a 100Mbit link). This patch against 2.6.6-rc1 will make sure that read and write bursts are enabled. Tested on ppc64 and ia32. ChangeSet@1.1804.1.3, 2004-04-16 13:01:32-04:00, jgarzik@redhat.com [netdrvr via-rhine] Fix MII phy scanning Noticed by Roger Luethi, via-rhine maintainer. ChangeSet@1.1804.1.2, 2004-04-16 12:59:08-04:00, akpm@osdl.org [PATCH] amd8111e retval fix drivers/net/amd8111e.c: In function `amd8111e_vlan_rx': drivers/net/amd8111e.c:677: warning: control reaches end of non-void function ChangeSet@1.1804.1.1, 2004-04-16 12:55:41-04:00, jgarzik@redhat.com Merge redhat.com:/spare/repo/netdev-2.6/misc into redhat.com:/spare/repo/net-drivers-2.6 ChangeSet@1.1806.3.1, 2004-04-16 15:27:18+01:00, rmk@flint.arm.linux.org.uk [ARM] Add --no-undefined to linker command line. Many binutils versions over the last year appear to silently build assembler files with undefined constants, and able to successfully create executables from such files. The assembler appears to add undefined symbols to the symbol table without any corresponding relocation information. Obviously this is bad news since the resulting executable may not be what the programmer intended. Work around the problem by forcing the linker to fail if there are any undefined symbols in the final object(s). ChangeSet@1.1806.2.4, 2004-04-16 06:55:37-07:00, benh@kernel.crashing.org [PATCH] ppc64: Fix RTAS races on pSeries The low level kernel interface to RTAS (the firmware runtime services) was plagued with races that could cause from bogus results of RTAS operations to total machine crashes in some circumstances. This patch fix the ones I could identify, hoping I didn't miss any. I also added a WARN_ON (well, it's asm equivalent) to enter_rtas to make sure we never _ever_ try to call that with interrupts enabled. ChangeSet@1.1806.2.3, 2004-04-16 06:53:12-07:00, anton@samba.org [PATCH] ppc64: always initialise dn->type and dn->name This fix comes from ppc32. Always initialise dn->type and dn->name so that code doesnt have to check for NULL everywhere. There is at least one bug report where we oopsed because of this. ChangeSet@1.1806.2.2, 2004-04-16 06:52:58-07:00, anton@samba.org [PATCH] ppc64: catch branch to 0 in real mode We have been debugging some strange fails where we branch to 0 in real mode. At the moment this results in the cpu running through the initialisation code and failing somewhere well into it. The following patch uses the featuring nop'ing code to remove the branch at real address 0 so it falls through to a trap instruction and gets caught early. ChangeSet@1.1806.2.1, 2004-04-16 06:44:35-07:00, adam@evdebs.org [PATCH] NMI watchdog Pentium M support This adda nmi_watchdog=2 support to the Pentium M processor. The P-M is a P6 chip, but it shares some chipset logic with the Pentium 4, so it requires this workaround to function. Without this patch, NMI gets stuck after 1 count. With it, the NMI fires and breaks me out of UHCI-related hard lockups. This patch is basically a modified version of the same patch for oprofile. See the threaded discussion here: http://lkml.org/lkml/2004/2/12/181 ChangeSet@1.1806.1.2, 2004-04-15 23:55:02-07:00, davem@nuts.davemloft.net [IXGB]: ixgb.h needs dma-mapping.h ChangeSet@1.1806.1.1, 2004-04-15 23:54:31-07:00, davem@nuts.davemloft.net [E1000]: e1000.h needs dma-mapping.h ChangeSet@1.1806, 2004-04-15 11:57:06-07:00, geert@linux-m68k.org [PATCH] Amiga Zorro8390 Ethernet section conflict Jeff Garzik notes that the previous cleanup highlights a bug: > > static const struct card_info { > zorro_id id; > const char *name; > unsigned int offset; > } cards[] __initdata = { > > and the lone user is __devinit: > > static int __devinit zorro8390_init_one(struct zorro_dev *z, > const struct zorro_device_id *ent) Here's the fix.. ChangeSet@1.1805, 2004-04-15 11:56:52-07:00, James.Bottomley@SteelEye.com [PATCH] fix non-PC subarchs which were broken by i386 probe_roms change The author apparently didn't understand that only the mach-default include directory is included by fallback for header files only. You can't stick a .c file in mach-default and expect all subarchs to be able to use it. The correct fix is to put std_resources.c in the kernel directory and give it its own Kconfig symbol for conditional compile so that subarchs may choose to include it or not. ChangeSet@1.1804, 2004-04-15 10:29:23-07:00, xschmi00@stud.feec.vutbr.cz [PATCH] USB: Fix vicam debug compile, fix user access The last copy_from_user patch to the vicam driver broke compilation with VICAM_DEBUG on. There is also another copy_from_user missing in case VIDIOCSPICT. This fixes both issues. ChangeSet@1.1801.2.1, 2004-04-15 09:20:00-07:00, James.Bottomley@SteelEye.com [PATCH] fix 4k irqstacks on x86 (and add voyager support) There's a bug in the x86 code in that it sets the boot CPU to zero. This isn't correct since some subarch's use physically indexed CPUs. However, subarchs have either set the boot cpu before irq_INIT() (or just inherited the default zero from INIT_THREAD_INFO()), so it's safe to believe current_thread_info()->cpu about the boot cpu. ChangeSet@1.1801.1.1, 2004-04-15 08:39:55-07:00, greg@kroah.com Merge kroah.com:/home/greg/linux/BK/bleed-2.6 into kroah.com:/home/greg/linux/BK/driver-2.6 ChangeSet@1.1802, 2004-04-15 08:22:54-07:00, greg@kroah.com merge ChangeSet@1.1801, 2004-04-15 07:04:22-07:00, benh@kernel.crashing.org [PATCH] ppc64: update g5_defconfig This adds IOMMU support & IOMU virtual merging to the default g5 config. This will not impair performances of machines that don't need the iommu (the kernel will only enable it if you have more than 2Gb of RAM, though you can explicitely enable it using a command line argument). ChangeSet@1.1800, 2004-04-15 07:04:10-07:00, benh@kernel.crashing.org [PATCH] ppc64: Fix possible duplicate MMU hash entries The current code has a subtle race where 2 hash PTEs can be inserted for the same virtual address for a short period of time. There should not be a stale one as the "old" one ultimately gets flushed, but the architecture specifies that having two hash PTE is illegal and can result in undefined behaviour. This patch fixes it by never clearing the _PAGE_HASHPTE bit when doing test_and_clear_{young,dirty}. That means that subsequent faults on those pages will have a bit more overhead to "discover" that the hash entry was indeed evicted. It also adds a small optisation to avoid doing the atomic operation and the hash flush in test_and_clear_dirty when the page isn't dirty or when setting write protect while it's already set. ChangeSet@1.1799, 2004-04-15 07:03:54-07:00, akpm@osdl.org [PATCH] posix messages queues for s390. From: Martin Schwidefsky The new message queue interface needs the following patch to get it working on s390 (31-bit, 64-bit and 31-bit compat). ChangeSet@1.1798, 2004-04-15 07:03:43-07:00, akpm@osdl.org [PATCH] light-weight auditing framework for s390. From: Martin Schwidefsky This patch adds the TIF_SYSCALL_AUDIT option to the s390 ptrace interface. ChangeSet@1.1797, 2004-04-15 07:03:32-07:00, akpm@osdl.org [PATCH] Add mqueue support to x86-64 From: Andi Kleen Add POSIX mqueue support to x86-64. ChangeSet@1.1796, 2004-04-15 07:03:20-07:00, akpm@osdl.org [PATCH] ext3: journalled quotas From: Jan Kara Journalled quota support for ext3: The patch consists of two parts - ext3 changes and changes in generic quota code. The main idea of the changes is that a transaction is always started before any operation which changes quota file and dirtifying of the quota causes its write to disk. These two changes assure that quota change is journalled into the same transaction as the file change and hence after journal replay quota is consistent with the filesystem state. As during journal replay inodes from orphan list are deleted/truncated we have to do quota_on before the replay of the orphan list - this problem is solved by additional mount options to ext3 with quota file names and format. Some changes in generic code were also needed to assure that quota structure in file is always allocated and so ordinary quota operations (like adding/deleting a block/inode) need only a few blocks from the transaction. ChangeSet@1.1795, 2004-04-15 07:03:05-07:00, akpm@osdl.org [PATCH] mq_open() and close_on_exec From: Chris Wright SUSv3 doesn't seem to specify one way or the other. I don't have the POSIX specs, and the old docs I have suggest that mq_open() creates an object which is to be closed upon exec. Jakub said: I think it is valid and required: http://www.opengroup.org/onlinepubs/007904975/functions/exec.html All open message queue descriptors in the calling process shall be closed, as described in mq_close() I'll add a new test for this into glibc testsuite. ChangeSet@1.1794, 2004-04-15 07:02:51-07:00, akpm@osdl.org [PATCH] radix-tree comment fix Fix various bogons and outright lies. ChangeSet@1.1793, 2004-04-15 07:02:37-07:00, akpm@osdl.org [PATCH] Fix mq_notify with SIGEV_NONE notification From: Jakub Jelinek mq_notify (q, NULL) and struct sigevent ev = { .sigev_notify = SIGEV_NONE }; mq_notify (q, &ev) are not the same thing in POSIX, yet the kernel treats them the same. Only the former makes the notification available to other processes immediately, see http://www.opengroup.org/onlinepubs/007904975/functions/mq_notify.html Without the patch below, http://sources.redhat.com/ml/libc-hacker/2004-04/msg00028.html glibc test fails. I looked at mq in Solaris and they behave the same in this regard as Linux with this patch. Kernel with this patch passes both Intel POSIX testsuite (with testsuite fixes from Ulrich) and glibc mq testsuite. ChangeSet@1.1790.7.1, 2004-04-14 22:34:22-04:00, jgarzik@redhat.com Merge redhat.com:/spare/repo/linux-2.6 into redhat.com:/spare/repo/misc-2.6 ChangeSet@1.1790.1.11, 2004-04-14 18:31:20-07:00, torvalds@ppc970.osdl.org Linux 2.6.6-rc1 TAG: v2.6.6-rc1