27 Jun, 2009

1 commit


25 Jun, 2009

39 commits

  • (feature suggested by Sergey Senozhatsky)

    Kmemleak needs to track all the memory allocations but some of these
    happen before kmemleak is initialised. These are stored in an internal
    buffer which may be exceeded in some kernel configurations. This patch
    adds a configuration option with a default value of 400 and also removes
    the stack dump when the early log buffer is exceeded.

    Signed-off-by: Catalin Marinas
    Acked-by: Sergey Senozhatsky

    Catalin Marinas
     
  • Linus Torvalds
     
  • This reverts commit 9e9f46c44e487af0a82eb61b624553e2f7118f5b.

    Quoting from the commit message:

    "At this point, it seems to solve more problems than it causes, so let's
    try using it by default. It's an easy revert if it ends up causing
    trouble."

    And guess what? The _CRS code causes trouble.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * git://git.infradead.org/battery-2.6:
    da9030_battery: Fix race between event handler and monitor
    Add MAX17040 Fuel Gauge driver
    w1: ds2760_battery: add support for sleep mode feature
    w1: ds2760: add support for EEPROM read and write
    ds2760_battery: cleanups in ds2760_battery_probe()

    Linus Torvalds
     
  • …/{vfs-2.6,audit-current}

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
    another race fix in jfs_check_acl()
    Get "no acls for this inode" right, fix shmem breakage
    inline functions left without protection of ifdef (acl)

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
    audit: inode watches depend on CONFIG_AUDIT not CONFIG_AUDIT_SYSCALL

    Linus Torvalds
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Even though one cannot make use of the audit watch code without
    CONFIG_AUDIT_SYSCALL the spaghetti nature of the audit code means that
    the audit rule filtering requires that it at least be compiled.

    Thus build the audit_watch code when we build auditfilter like it was
    before cfcad62c74abfef83762dc05a556d21bdf3980a2

    Clearly this is a point of potential future cleanup..

    Reported-by: Frans Pop
    Signed-off-by: Eric Paris
    Signed-off-by: Al Viro

    Eric Paris
     
  • Signed-off-by: Al Viro

    Markus Trippelsdorf
     
  • * 'futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    futex: Fix the write access fault problem for real

    Linus Torvalds
     
  • commit 64d1304a64 (futex: setup writeable mapping for futex ops which
    modify user space data) did address only half of the problem of write
    access faults.

    The patch was made on two wrong assumptions:

    1) access_ok(VERIFY_WRITE,...) would actually check write access.

    On x86 it does _NOT_. It's a pure address range check.

    2) a RW mapped region can not go away under us.

    That's wrong as well. Nobody can prevent another thread to call
    mprotect(PROT_READ) on that region where the futex resides. If that
    call hits between the get_user_pages_fast() verification and the
    actual write access in the atomic region we are toast again.

    The solution is to not rely on access_ok and get_user() for any write
    access related fault on private and shared futexes. Instead we need to
    fault it in with verification of write access.

    There is no generic non destructive write mechanism which would fault
    the user page in trough a #PF, but as we already know that we will
    fault we can as well call get_user_pages() directly and avoid the #PF
    overhead.

    If get_user_pages() returns -EFAULT we know that we can not fix it
    anymore and need to bail out to user space.

    Remove a bunch of confusing comments on this issue as well.

    Signed-off-by: Thomas Gleixner
    Cc: stable@kernel.org

    Thomas Gleixner
     
  • SLUB uses higher order allocations by default but falls back to small
    orders under memory pressure. Make sure the GFP mask used in the initial
    allocation doesn't include __GFP_NOFAIL.

    Signed-off-by: Pekka Enberg
    Signed-off-by: Linus Torvalds

    Pekka Enberg
     
  • Traditionally, we never failed small orders (even regardless of any
    __GFP_NOFAIL flags), and slab will allocate order-1 allocations even for
    small allocations that could fit in a single page (in order to avoid
    excessive fragmentation).

    Maybe we should remove this warning entirely, but before making that
    judgement, at least limit it to bigger allocations.

    Acked-by: Pekka Enberg
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    Staging: octeon-ethernet: Fix race freeing transmit buffers.
    Staging: octeon-ethernet: Convert to use net_device_ops.
    MIPS: Cavium: Add CPU hotplugging code.
    MIPS: SMP: Allow suspend and hibernation if CPU hotplug is available
    MIPS: Add arch generic CPU hotplug
    DMA: txx9dmac: use dma_unmap_single if DMA_COMPL_{SRC,DEST}_UNMAP_SINGLE set
    MIPS: Sibyte: Fix build error if CONFIG_SERIAL_SB1250_DUART is undefined.
    MIPS: MIPSsim: Fix build error if MSC01E_INT_BASE is undefined.
    MIPS: Hibernation: Remove SMP TLB and cacheflushing code.
    MIPS: Build fix - include into all smp_processor_id() users.
    MIPS: bug.h Build fix - include .

    Linus Torvalds
     
  • The existing code had the following race:

    Thread-1 Thread-2

    inc/read in_use
    inc/read in_use
    inc tx_free_list[qos].len
    inc tx_free_list[qos].len

    The actual in_use value was incremented twice, but thread-1 is going
    to free memory based on its stale value, and will free one too many
    times. The result is that memory is freed back to the kernel while
    its packet is still in the transmit buffer. If the memory is
    overwritten before it is transmitted, the hardware will put a valid
    checksum on it and send it out (just like it does with good packets).
    If by chance the TCP flags are clobbered but not the addresses or
    ports, the result can be a broken TCP stream.

    The fix is to track the number of freed packets in a single location
    (a Fetch-and-Add Unit register). That way it can never get out of sync
    with itself.

    We try to free up to MAX_SKB_TO_FREE (currently 10) buffers at a time.
    If fewer are available we adjust the free count with the difference.
    The action of claiming buffers to free is atomic so two threads cannot
    claim the same buffers.

    Signed-off-by: David Daney
    Signed-off-by: Ralf Baechle

    David Daney
     
  • Convert the driver to use net_device_ops as it is now mandatory.

    Also compensate for the removal of struct sk_buff's dst field.

    The changes are mostly mechanical, the content of ethernet-common.c
    was moved to ethernet.c and ethernet-common.{c,h} are removed.

    Signed-off-by: David Daney
    Signed-off-by: Ralf Baechle

    David Daney
     
  • Thanks to Cavium Inc. for the code contribution and help.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • The SMP implementation of suspend and hibernate depends on CPU hotplugging.
    In the past we didn't have CPU hotplug so suspend and hibernation were not
    possible on SMP systems.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Each platform has to add support for CPU hotplugging itself by providing
    suitable definitions for the cpu_disable and cpu_die of the smp_ops
    methods and setting SYS_SUPPORTS_HOTPLUG_CPU. A platform should only set
    SYS_SUPPORTS_HOTPLUG_CPU once all it's smp_ops definitions have the
    necessary changes. This patch contains the changes to the dummy smp_ops
    definition for uni-processor systems.

    Parts of the code contributed by Cavium Inc.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • This patch does not change actual behaviour since dma_unmap_page is just
    an alias of dma_unmap_single on MIPS.

    Signed-off-by: Atsushi Nemoto
    Cc: Ralf Baechle
    Acked-by: Dan Williams
    Signed-off-by: Andrew Morton
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • This fixes kernel.org bugzilla 13596, see
    http://bugzilla.kernel.org/show_bug.cgi?id=13596

    Reported-by: dvice_null@yahoo.com

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • This fixes kernel.org bugzilla 13595, see
    http://bugzilla.kernel.org/show_bug.cgi?id=13595

    Reported-by: dvice_null@yahoo.com

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • We can't perform any flushes on SMP from swsusp_arch_resume because
    interrupts are disabled. A cross-CPU flush is unnecessary anyway
    because all but the local CPU have already been disabled. A local
    flush is not needed either because we didn't change any mappings. So
    just delete the code.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Some of the were relying into smp.h being dragged in by another header
    which of course is fragile. uses smp_processor_id()
    only in macros and including smp.h there leads to an include loop, so
    don't change cpu-info.h.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • In the past this file somehow used to be dragged in.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm: (48 commits)
    dm mpath: change to be request based
    dm: disable interrupt when taking map_lock
    dm: do not set QUEUE_ORDERED_DRAIN if request based
    dm: enable request based option
    dm: prepare for request based option
    dm raid1: add userspace log
    dm: calculate queue limits during resume not load
    dm log: fix create_log_context to use logical_block_size of log device
    dm target:s introduce iterate devices fn
    dm table: establish queue limits by copying table limits
    dm table: replace struct io_restrictions with struct queue_limits
    dm table: validate device logical_block_size
    dm table: ensure targets are aligned to logical_block_size
    dm ioctl: support cookies for udev
    dm: sysfs add suspended attribute
    dm table: improve warning message when devices not freed before destruction
    dm mpath: add service time load balancer
    dm mpath: add queue length load balancer
    dm mpath: add start_io and nr_bytes to path selectors
    dm snapshot: use barrier when writing exception store
    ...

    Linus Torvalds
     
  • * 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb:
    uwb: allow WLP to be used with IPv6.
    uwb: event_size should be signed

    Linus Torvalds
     
  • * 'audit.b63' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
    Fix rule eviction order for AUDIT_DIR
    Audit: clean up all op= output to include string quoting
    Audit: move audit_get_nd completely into audit_watch
    audit: seperate audit inode watches into a subfile
    Audit: clean up audit_receive_skb
    Audit: cleanup netlink mesg handling
    Audit: unify the printk of an skb when auditd not around
    Audit: dereferencing krule as if it were an audit_watch
    Audit: better estimation of execve record length
    Audit: fix audit watch use after free

    Linus Torvalds
     
  • Posting to the dev-etrax mailing list is only allowed for subscribers,
    and the list is more geared toward user applications than kernel
    developers.

    Change to newly created mailing list for CRIS.

    Signed-off-by: Jesper Nilsson
    Signed-off-by: Linus Torvalds

    Jesper Nilsson
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (72 commits)
    asus-laptop: remove EXPERIMENTAL dependency
    asus-laptop: use pr_fmt and pr_
    eeepc-laptop: cpufv updates
    eeepc-laptop: sync eeepc-laptop with asus_acpi
    asus_acpi: Deprecate in favor of asus-laptop
    acpi4asus: update MAINTAINER and KConfig links
    asus-laptop: platform dev as parent for led and backlight
    eeepc-laptop: enable camera by default
    ACPI: Rename ACPI processor device bus ID
    acerhdf: Acer Aspire One fan control
    ACPI: video: DMI workaround broken Acer 7720 BIOS enabling display brightness
    ACPI: run ACPI device hot removal in kacpi_hotplug_wq
    ACPI: Add the reference count to avoid unloading ACPI video bus twice
    ACPI: DMI to disable Vista compatibility on some Sony laptops
    ACPI: fix a deadlock in hotplug case
    Show the physical device node of backlight class device.
    ACPI: pdc init related memory leak with physical CPU hotplug
    ACPI: pci_root: remove unused dev/fn information
    ACPI: pci_root: simplify list traversals
    ACPI: pci_root: use driver data rather than list lookup
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (23 commits)
    switch xfs to generic acl caching helpers
    helpers for acl caching + switch to those
    switch shmem to inode->i_acl
    switch reiserfs to inode->i_acl
    switch reiserfs to usual conventions for caching ACLs
    reiserfs: minimal fix for ACL caching
    switch nilfs2 to inode->i_acl
    switch btrfs to inode->i_acl
    switch jffs2 to inode->i_acl
    switch jfs to inode->i_acl
    switch ext4 to inode->i_acl
    switch ext3 to inode->i_acl
    switch ext2 to inode->i_acl
    add caching of ACLs in struct inode
    fs: Add new pre-allocation ioctls to vfs for compatibility with legacy xfs ioctls
    cleanup __writeback_single_inode
    ... and the same for vfsmount id/mount group id
    Make allocation of anon devices cheaper
    update Documentation/filesystems/Locking
    devpts: remove module-related code
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6:
    bnx2: Fix the behavior of ethtool when ONBOOT=no
    qla3xxx: Don't sleep while holding lock.
    qla3xxx: Give the PHY time to come out of reset.
    ipv4 routing: Ensure that route cache entries are usable and reclaimable with caching is off
    net: Move rx skb_orphan call to where needed
    ipv6: Use correct data types for ICMPv6 type and code
    net: let KS8842 driver depend on HAS_IOMEM
    can: let SJA1000 driver depend on HAS_IOMEM
    netxen: fix firmware init handshake
    netxen: fix build with without CONFIG_PM
    netfilter: xt_rateest: fix comparison with self
    netfilter: xt_quota: fix incomplete initialization
    netfilter: nf_log: fix direct userspace memory access in proc handler
    netfilter: fix some sparse endianess warnings
    netfilter: nf_conntrack: fix conntrack lookup race
    netfilter: nf_conntrack: fix confirmation race condition
    netfilter: nf_conntrack: death_by_timeout() fix

    Linus Torvalds
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:
    udf: remove redundant tests on unsigned
    udf: Use device size when drive reported bogus number of written blocks

    Linus Torvalds
     
  • The kernel oopses if this flag is set.

    [and neither driver should set it as they call tty_flip_buffer_push from IRQ
    paths so have always been buggy]

    Signed-off-by: Chuck Ebbert
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Chuck Ebbert
     
  • Since commit 3e3b5c087799e536871c8261b05bc28e4783c8da ("tty: use
    prepare/finish_wait"), tty_port_block_til_ready() is using
    prepare_to_wait()/finish_wait(). Those functions require that the
    wait_queue_t be initialised with .func=autoremove_wake_function, via
    DEFINE_WAIT().

    But the conversion from DECLARE_WAITQUEUE() to DEFINE_WAIT() was not made,
    so this code will oops in finish_wait().

    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • Use the newly introduced pci_ioremap_bar() function in drivers/serial.
    pci_ioremap_bar() just takes a pci device and a bar number, with the goal
    of making it really hard to get wrong, while also having a central place
    to stick sanity checks.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     
  • Fix race condition when adding transmit data to active DMA buffer ring
    that can cause transmit stall.

    Update transmit timeout when adding data to active DMA buffer ring.
    Base transmit timeout on amount of buffered data instead of using fixed
    value.

    Signed-off-by: Paul Fulghum
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Paul Fulghum
     
  • Remove unneeded casts.

    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Implement the serial polling hooks for the serial_txx9 uart for use with
    kgdboc.

    This patch once got SOB from Jason on Jul 2008 and (perhaps) merged into
    kgdb-next branch, but lost somewhere then. I resend it now with Jason's
    Acked-by.

    Signed-off-by: Atsushi Nemoto
    Acked-by: Jason Wessel
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Atsushi Nemoto