- 04 Feb, 2004 40 commits
-
-
Stephen C. Tweedie authored
I've been chasing a weird SELinux bug which shows up mostly when doing installs of a dev-* rpm (ie. creating and overwriting lots of block device inodes), but which I've also seen when doing mkinitrd. It turned out not to be an SELinux problem at all, but a core VFS S_ISBLK bug. It seems that SELinux simply widens the race window. The code at fault is fs/fs-writeback.c:__mark_inode_dirty(): /* * Only add valid (hashed) inodes to the superblock's * dirty list. Add blockdev inodes as well. */ if (!S_ISBLK(inode->i_mode)) { if (hlist_unhashed(&inode->i_hash)) goto out; if (inode->i_state & (I_FREEING|I_CLEAR)) goto out; } The "I_FREEING|I_CLEAR" condition was added after the ISBLK/unhashed tests were already in the source, but I can't see any reason why we'd want the I_FREEING test not to apply to block devices. And indeed, this results in all sorts of inode list corruptions. Simply moving the I_FREEING|I_CLEAR test out of the protection of the S_ISBLK() condition fixes things entirely. The existing 2.6 kernel will reliably fail on me in about 2 seconds once "rpm -Uvh --force dev*.rpm" starts its actual installation of the new inodes. With the patch below I can't reproduce it at all.
-
Andrew Morton authored
From: Roland McGrath <roland@redhat.com> The #include is the part of this patch that matters, so the #ifdef below works. The rest of the patch removes gratuitous duplication due to some strange aversion to concision in the presence of #ifdef, the kind that is all too common, utterly pointless, and error prone.
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> rch/ia64/sn/io/machvec/pci_bus_cvlink.c Some pretty-print mods Use pin instead of slot for dma_flush init
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/io/machvec/pci_bus_cvlink.c Couple of checks for kmalloc <= 0 were fixed Some __init and static fixes
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/kernel/irq.c Need to get the cpu from the passed in pcibr struct Made the interrupt list static and gave it a better name - credit jes Some lindent'isms Took out some code that isn't used ..... yet
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/io/sn2/pcibr/pcibr_intr.c Kill pcibr_intr_func()
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/kernel/setup.c If generic enabled legacy VGA or kbd - disable them Slightly different check for work arounds and only do it once If there is no klconfig info and we are in the simulator - ignore it Update the pxm_to_nasid() routine. It failed for SP configurations and some SMP configurations where M-bricks used pxm numbers lower that the first c-brick. If we don't find the cpu for pxm, search the memblks for it.
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/io/sn2/ml_iograph.c Better code for early_probe_for_widget()
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c check for pcibr_invalidate_ate 0 used for debugging
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/io/platform_init/sgi_io_init.c use numionodes instead of numnodes arch/ia64/sn/io/sn2/klconflib.c find_lboard changes - generalized a number of the interface funcs arch/ia64/sn/io/sn2/klgraph.c call the more general find_lboard funcs arch/ia64/sn/io/sn2/ml_iograph.c call the more general lboard funcs arch/ia64/sn/io/sn2/module.c lboard changes mod for headless/memless nodes arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c isIO9 mod arch/ia64/sn/kernel/setup.c headless/memless mod include/asm-ia64/sn/klconfig.h generalized find_lboard funs
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/io/machvec/pci_dma.c Add MINIMAL_ATE_FLAGS() macro usage include/asm-ia64/sn/pci/pcibr.h Add MINIMAL_ATE_FLAG() macro
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c extern for pcibr_rrb_alloc_more() include/asm-ia64/sn/pci/pcibr_private.h more unsigned to unsigned int
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/io/io.c@1.12 misc code cleanup no parens on returns remove __psunsigned_t arch/ia64/sn/io/sn2/ml_iograph.c@1.18 no parens on returns arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c@1.25 no parens on returns use -errno arch/ia64/sn/io/sn2/pcibr/pcibr_hints.c@1.8 no parens on returns arch/ia64/sn/io/sn2/pcibr/pcibr_intr.c@1.15 no parens on returns unsigned to unsigned int arch/ia64/sn/io/sn2/pcibr/pcibr_rrb.c@1.13 no parens on returns use -errno arch/ia64/sn/io/sn2/pcibr/pcibr_slot.c@1.18 no parens on returns use -errno arch/ia64/sn/io/sn2/pciio.c@1.14 oom handling removed ASSERT and funcs not needed arch/ia64/sn/io/sn2/pic.c@1.13 use -errno arch/ia64/sn/io/sn2/shuberror.c@1.12 add delay.h arch/ia64/sn/io/sn2/xbow.c@1.10 include file clean up arch/ia64/sn/io/sn2/xtalk.c@1.9 misc code cleanup no parens on returns arch/ia64/sn/io/xswitch.c@1.11 misc code cleanup arch/ia64/sn/kernel/bte.c@1.5 include file clean up arch/ia64/sn/kernel/mca.c@1.8 include file clean up arch/ia64/sn/kernel/probe.c@1.5 include file clean up arch/ia64/sn/kernel/sn2/prominfo_proc.c@1.3 include file clean up arch/ia64/sn/kernel/sn2/sn2_smp.c@1.9 include file clean up arch/ia64/sn/kernel/sn2/sn_proc_fs.c@1.4 include file clean up drivers/char/sn_serial.c@1.3 include file clean up include/asm-ia64/sn/addrs.h@1.8 include file clean up remove __psunsigned_t include/asm-ia64/sn/alenlist.h@1.8 unsigned to unsigned int include/asm-ia64/sn/arch.h@1.7 include file clean up include/asm-ia64/sn/bte.h@1.6 include file clean up include/asm-ia64/sn/clksupport.h@1.8 include file clean up include/asm-ia64/sn/driver.h@1.5 remove __psunsigned_t include/asm-ia64/sn/hcl.h@1.13 include file clean up include/asm-ia64/sn/hcl_util.h@1.7 include file clean up include/asm-ia64/sn/hwgfs.h@1.5 include file clean up include/asm-ia64/sn/iograph.h@1.9 include file clean up include/asm-ia64/sn/klconfig.h@1.14 remove __psunsigned_t include/asm-ia64/sn/kldir.h@1.5 remove __psunsigned_t include file clean up include/asm-ia64/sn/module.h@1.12 include file clean up include/asm-ia64/sn/nodepda.h@1.14 include file clean up include/asm-ia64/sn/pci/bridge.h@1.13 uchar_t to unsigned char include/asm-ia64/sn/pci/pcibr_private.h@1.20 move PVnnnnnn's include/asm-ia64/sn/pci/pciio.h@1.14 unsigned to unsigned int include/asm-ia64/sn/pci/pciio_private.h@1.10 unsigned to unsigned int include/asm-ia64/sn/pda.h@1.9 include file clean up include/asm-ia64/sn/pio.h@1.7 include file clean up ulong to unsigned long include/asm-ia64/sn/sgi.h@1.11 include file clean up move PVnnnnnn's to here include/asm-ia64/sn/sn2/arch.h@1.6 include file clean up include/asm-ia64/sn/sn2/sn_private.h@1.12 include file clean up remove __psunsigned_t include/asm-ia64/sn/sn_cpuid.h@1.8 include file clean up include/asm-ia64/sn/sn_private.h@1.6 include file clean up include/asm-ia64/sn/types.h@1.6 include file clean up remove __psunsigned_t include/asm-ia64/sn/vector.h@1.6 include file clean up include/asm-ia64/sn/xtalk/xbow.h@1.9 include file clean up misc code cleanup include/asm-ia64/sn/xtalk/xtalk.h@1.12 unsigned to unsigned int include/asm-ia64/sn/xtalk/xwidget.h@1.8 unsigned to unsigned int
-
Andrew Morton authored
From: Pat Gefre <pfg@sgi.com> arch/ia64/sn/io/machvec/pci_bus_cvlink.c Changes for new pcireg_ interfaces pcibr reorg Some code cleanup/reorg arch/ia64/sn/io/machvec/pci_dma.c IS_PCIA64() not needed arch/ia64/sn/io/sn2/ml_iograph.c new pcireg_ interface arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c code reorg/clean up arch/ia64/sn/io/sn2/pcibr/pcibr_config.c code reorg/cleanup arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c reorg/cleanup arch/ia64/sn/io/sn2/pcibr/pcibr_error.c reorg/cleanup arch/ia64/sn/io/sn2/pcibr/pcibr_intr.c reorg/cleanup arch/ia64/sn/io/sn2/pcibr/pcibr_reg.c Fixed the interface to these functions - one call/data type arch/ia64/sn/io/sn2/pcibr/pcibr_rrb.c reorg/cleanup arch/ia64/sn/io/sn2/pcibr/pcibr_slot.c reorg/cleanup arch/ia64/sn/io/sn2/pciio.c removed unused functions arch/ia64/sn/io/sn2/pic.c reorg/cleanup arch/ia64/sn/kernel/irq.c IS_PIC_SOFT not needed mod for new pcireg_ interfaces include/asm-ia64/sn/module.h nodes/geoid[] -> MAX_SLABS include/asm-ia64/sn/pci/bridge.h IS_[X]BRIDGE not needed include/asm-ia64/sn/pci/pci_bus_cvlink.h SET_PCIA64 and IS_PCIA64 not needed isa64, dma_buf_sync, xbow_buf_sync gone include/asm-ia64/sn/pci/pcibr.h mostly cleanup some reorg mods include/asm-ia64/sn/pci/pcibr_private.h some reorg code protos for new pcireg_ interfaces include/asm-ia64/sn/pci/pciio.h cleanup include/asm-ia64/sn/pci/pic.h cleanup include/asm-ia64/sn/sn2/intr.h changed IA64_SN2_FIRST_DEVICE_VECTOR and IA64_SN2_LAST_DEVICE_VECTOR
-
Andrew Morton authored
From: Andi Kleen <ak@muc.de> Fix a bug introduced with the last merge that prevented booting with CONFIG_DEBUG_INFO on on x86-64. It would corrupt registers in interrupts. This has hit a few people, so I would consider it as a critical fix.
-
Andrew Morton authored
From: IWAMOTO Toshihiro <iwamoto@valinux.co.jp> This patch fixes a memory leak that happens when a core file hits the process's resource limit.
-
Andrew Morton authored
From: Geert Uytterhoeven <geert@linux-m68k.org> Spinlock code needs <linux/sched.h>
-
Andrew Morton authored
From: Geert Uytterhoeven <geert@linux-m68k.org> Never include <asm/delay.h> directly
-
Andrew Morton authored
From: Geert Uytterhoeven <geert@linux-m68k.org> Never include <asm/delay.h> directly
-
Andrew Morton authored
From: Geert Uytterhoeven <geert@linux-m68k.org> Compile fix: add missing #include <linux/init.h>
-
Andrew Morton authored
From: Geert Uytterhoeven <geert@linux-m68k.org> Compile fixes for the Moxa serial drivers: - Add missing #include <linux/init.h> - Kill warning if CONFIG_PCI is not set
-
Andrew Morton authored
From: Geert Uytterhoeven <geert@linux-m68k.org> Fix compilation if CONFIG_PCI is not set
-
Andrew Morton authored
From: Junio C Hamano <junkio@cox.net> Compiling neofb.c without MTRR results in two "unused variable" warnings.
-
Andrew Morton authored
We're using a 4-order allocation in there and it can fail. Change it to just keep reclaiming memory until something gives.
-
Andrew Morton authored
From: Martin Hicks <mort@wildopensource.com> This patch removes kmalloc_percpu_init() from include/linux/percpu.h It is unused and doesn't seem to be required.
-
Andrew Morton authored
From: Patrick Mansfield <patmans@us.ibm.com> On NUMAQ, any module which calls __alloc_pages() needs cpu_2_node() (via cpu_to_node()). This patch exports cpu_2_node.
-
Andrew Morton authored
From: James Morris <jmorris@redhat.com> It seems to me that this dentry assignment in open_namei is not needed per the patch below. On this path, dentry is not referenced.
-
Andrew Morton authored
From: Jens Axboe <axboe@suse.de> 2.6 imposes a 64 frame limit where 2.4 does not (just relies on kmalloc() failing and limiting frames from that). That breaks at least on guys app. With MSF adressing, it's much simpler to be able to ask for a full second at the time, so I think we should just allow that. So bump the limit from 64 to CD_FRAMES (which is 75).
-
Andrew Morton authored
From: Jake Moilanen <moilanen@austin.ibm.com> On a ppc64 logically partitioned system, there can be a setup where function 0 of a PCI-PCI bridge is assigned to one partition and (for example) function 2 is assigned to a second partition. On the second partition, it would appear that function 0 does not exist, but function 2 does. If all the functions are not scanned, everything under function 2 would not be detected. This patch allows devices that don't respond to function 0, but do respond to other functions to be marked with a quirk and have all of their functions scanned.
-
Andrew Morton authored
From: Jack Steiner <steiner@sgi.com> The cpu_vm_mask use to be close to the mmu_context_t field in the mm struct. Recently some large members were added between "cpu_vm_mask" and "context". I suspect that was an oversight. Here is a patch that puts the fields close together. This makes it likely that both fields are in the same cache line. Since both fields are likely to be updated at the same time, this may improve performance.
-
Andrew Morton authored
From: Matt Mackall <mpm@selenic.com> I've been fiddling with cleaning up some old code here and suggest the following to make Lindent match actual practice more closely. This does: a) (no -psl) void *foo(void) { instead of void * foo(void) { b) (no -bs) "sizeof(foo)" rather than "sizeof (foo)" c) (-ncs) "(void *)foo" rather than "(void *) foo"
-
Andrew Morton authored
From: Louis Zhuang <louis_zhuang@linux.co.intel.com> enable fast symbol lookup via an inverted index.
-
Andrew Morton authored
From: Dave Olien <dmo@osdl.org> acked by npiggin.
-
Andrew Morton authored
From: Nikita Danilov <Nikita@Namesys.COM> shrink_list() checks PageSwapCache() before calling add_to_swap(), this means that anonymous page that is going to be added to the swap right now these checks return false and: (*) it will be unaccounted for in nr_mapped, and (*) it won't be written to the swap if gfp_flags include __GFP_IO but not __GFP_FS. (Both will happen only on the next round of scanning.) Patch below just moves may_enter_fs initialization down. I am not sure about (*nr_mapped) increase though.
-
Andrew Morton authored
From: Andi Kleen <ak@suse.de> When the user gave an address hint in mmap use it as starting point for the search for !MAP_FIXED. Currently it is only checked directly and when already used the free area cache is used as starting point. With this change you can use mmap(4096, ....) to e.g. get the lowest free address in your address space, which is sometimes useful. For example on x86-64 glibc wants to preferably allocate thread local data in the first 4GB but use higher addresses when this is not possible. This can be a bit more costly in CPU time because it may have to skip over more VMAs, but gives better semantics for most cases. Most programs pass NULL as hint anyways so it won't make any difference for them. I did it for the generic mmap and for x86-64 for now. Also minor white space fixes for x86-64.
-
Andrew Morton authored
From: Jes Sorensen <jes@trained-monkey.org> nr_free_pages() is expensive, especially on large SMP machines. The patch changes the memory overcommit code so that it only calls nr_free_pages() is we're about to fail the allocation attempt.
-
Andrew Morton authored
From: Jens Axboe <axboe@suse.de> It's from Pascal Schmidt and adds write protect handling to ide-cd along with support for non-2kb block sizes.
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> The patch fixes locking in proc_check_root(). It brings is_subdir() call under vfsmount_lock. Holding vfsmount_lock will ensure mnt_mountpoint dentry is intact and the dentry does not go away while it is being checked in is_subdir().
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> o The following patch fixes is_subdir() races with d_move. Due to concurrent d_move, in is_subdir() we can end up accessing freed d_parent pointer in case of pre-emptible kernel. To avoid this we can use rcu_read_lock() and rcu_read_unlock(). o This also fixes the seqlock uses in is_subdir() as we need to restart the the inner loop with the origianl new_dentry passed to the routine in case of any rename occured while we are traversing d_parent links.
-
Andrew Morton authored
From: Andrew Zabolotny <zap@homelink.ru> ac97_unregister_driver() is nulling out the ->driver field for all codecs. It should only null the codecs which are using this driver.
-