23 Sep, 2010

1 commit

  • base patch to implement 'jump labeling'. Based on a new 'asm goto' inline
    assembly gcc mechanism, we can now branch to labels from an 'asm goto'
    statment. This allows us to create a 'no-op' fastpath, which can subsequently
    be patched with a jump to the slowpath code. This is useful for code which
    might be rarely used, but which we'd like to be able to call, if needed.
    Tracepoints are the current usecase that these are being implemented for.

    Acked-by: David S. Miller
    Signed-off-by: Jason Baron
    LKML-Reference:

    [ cleaned up some formating ]

    Signed-off-by: Steven Rostedt

    Jason Baron
     

15 Sep, 2010

1 commit


10 Sep, 2010

2 commits

  • There's been some recent confusion about error checking GPIO numbers.
    briefly, it should be handled mostly during setup, when gpio_request() is
    called, and NEVER by expectig gpio_is_valid to report more than
    never-usable GPIO numbers.

    [akpm@linux-foundation.org: terminate unterminated comment]
    Signed-off-by: David Brownell
    Cc: Eric Miao"
    Cc: "Ryan Mallon"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • asm-generic/hardirq.h needs asm/irq.h which might include
    linux/interrupt.h as in the sparc 32 case. At this point
    we need irq_cpustat generic definitions, but those are
    included later in asm-generic/hardirq.h.

    Then delay a bit the inclusion of irq.h from
    asm-generic/hardirq.h, it doesn't need to be included early.

    This fixes:

    include/linux/interrupt.h: In function '__raise_softirq_irqoff':
    include/linux/interrupt.h:414: error: implicit declaration of function 'local_softirq_pending'
    include/linux/interrupt.h:414: error: lvalue required as left operand of assignment

    Reported-by: Ingo Molnar
    Signed-off-by: Frederic Weisbecker
    Cc: Lai Jiangshan
    Cc: Koki Sanagi
    Cc: mathieu.desnoyers@efficios.com
    Cc: rostedt@goodmis.org
    Cc: nhorman@tuxdriver.com
    Cc: scott.a.mcmillan@intel.com
    Cc: eric.dumazet@gmail.com
    Cc: kaneshige.kenji@jp.fujitsu.com
    Cc: davem@davemloft.net
    Cc: izumi.taku@jp.fujitsu.com
    Cc: kosaki.motohiro@jp.fujitsu.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     

08 Sep, 2010

1 commit


19 Aug, 2010

1 commit


16 Aug, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    arch/tile: don't validate CROSS_COMPILE needlessly
    arch/tile: export only COMMAND_LINE_SIZE to userspace.
    arch/tile: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN
    arch/tile: Rename the hweight() implementations to __arch_hweight()
    arch/tile: extend syscall ABI to set r1 on return as well.
    arch/tile: Various cleanups.
    arch/tile: support backtracing on TILE-Gx
    arch/tile: Fix a couple of issues with the COMPAT code for TILE-Gx.
    arch/tile: Use separate, better minsec values for clocksource and sched_clock.
    arch/tile: correct a bug in freeing bootmem by VA for the optional second initrd.
    arch: tile: mm: pgtable.c: Removed duplicated #include
    arch: tile: kernel/proc.c Removed duplicated #include
    Add fanotify syscalls to .
    arch/tile: support new kunmap_atomic() naming convention.
    tile: remove unused ISA_DMA_THRESHOLD define

    Conflicts in arch/tile/configs/tile_defconfig (pick the mainline version
    with the reduced defconfig).

    Linus Torvalds
     

15 Aug, 2010

1 commit


14 Aug, 2010

1 commit


13 Aug, 2010

1 commit


11 Aug, 2010

7 commits

  • Architectures implement dma_is_consistent() in different ways (some
    misinterpret the definition of API in DMA-API.txt). So it hasn't been so
    useful for drivers. We have only one user of the API in tree. Unlikely
    out-of-tree drivers use the API.

    Even if we fix dma_is_consistent() in some architectures, it doesn't look
    useful at all. It was invented long ago for some old systems that can't
    allocate coherent memory at all. It's better to export only APIs that are
    definitely necessary for drivers.

    Let's remove this API.

    Signed-off-by: FUJITA Tomonori
    Cc: James Bottomley
    Reviewed-by: Konrad Rzeszutek Wilk
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • The O_* bit numbers are defined in 20+ arch/*, and can silently overlap.
    Add a compile time check to ensure the uniqueness as suggested by David
    Miller.

    Signed-off-by: Wu Fengguang
    Cc: David Miller
    Cc: Stephen Rothwell
    Cc: Al Viro
    Cc: Christoph Hellwig
    Cc: Eric Paris
    Cc: Roland Dreier
    Cc: Jamie Lokier
    Cc: Andreas Schwab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wu Fengguang
     
  • This patch is against the 2.6.34 source.

    Paraphrased from the 1989 BSD patch by David Borman @ cray.com:

    These are the changes needed for the kernel to support
    LINEMODE in the server.

    There is a new bit in the termios local flag word, EXTPROC.
    When this bit is set, several aspects of the terminal driver
    are disabled. Input line editing, character echo, and mapping
    of signals are all disabled. This allows the telnetd to turn
    off these functions when in linemode, but still keep track of
    what state the user wants the terminal to be in.

    New ioctl:
    TIOCSIG Generate a signal to processes in the
    current process group of the pty.

    There is a new mode for packet driver, the TIOCPKT_IOCTL bit.
    When packet mode is turned on in the pty, and the EXTPROC bit
    is set, then whenever the state of the pty is changed, the
    next read on the master side of the pty will have the TIOCPKT_IOCTL
    bit set. This allows the process on the server side of the pty
    to know when the state of the terminal has changed; it can then
    issue the appropriate ioctl to retrieve the new state.

    Since the original BSD patches accompanied the source code for telnet
    I've left that reference here, but obviously the feature is useful for
    any remote terminal protocol, including ssh.

    The corresponding feature has existed in the BSD tty driver since 1989.
    For historical reference, a good copy of the relevant files can be found
    here:

    http://anonsvn.mit.edu/viewvc/krb5/trunk/src/appl/telnet/?pathrev=17741

    Signed-off-by: Howard Chu
    Cc: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    hyc@symas.com
     
  • Remove Hayes ESP ioctls

    The Hayes ESP driver has been removed from the tree:
    commit f53a2ade0bb9f2a81f473e6469155172a96b7c38
    ("tty: esp: remove broken driver")
    so its ioctls aren't needed any more.

    Signed-off-by: Jeff Dike
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Jeff Dike
     
  • * 'writable_limits' of git://decibel.fi.muni.cz/~xslaby/linux:
    unistd: add __NR_prlimit64 syscall numbers
    rlimits: implement prlimit64 syscall
    rlimits: switch more rlimit syscalls to do_prlimit
    rlimits: redo do_setrlimit to more generic do_prlimit
    rlimits: add rlimit64 structure
    rlimits: do security check under task_lock
    rlimits: allow setrlimit to non-current tasks
    rlimits: split sys_setrlimit
    rlimits: selinux, do rlimits changes under task_lock
    rlimits: make sure ->rlim_max never grows in sys_setrlimit
    rlimits: add task_struct to update_rlimit_cpu
    rlimits: security, add task_struct to setrlimit

    Fix up various system call number conflicts. We not only added fanotify
    system calls in the meantime, but asm-generic/unistd.h added a wait4
    along with a range of reserved per-architecture system calls.

    Linus Torvalds
     
  • * 'for-linus' of git://git.infradead.org/users/eparis/notify: (132 commits)
    fanotify: use both marks when possible
    fsnotify: pass both the vfsmount mark and inode mark
    fsnotify: walk the inode and vfsmount lists simultaneously
    fsnotify: rework ignored mark flushing
    fsnotify: remove global fsnotify groups lists
    fsnotify: remove group->mask
    fsnotify: remove the global masks
    fsnotify: cleanup should_send_event
    fanotify: use the mark in handler functions
    audit: use the mark in handler functions
    dnotify: use the mark in handler functions
    inotify: use the mark in handler functions
    fsnotify: send fsnotify_mark to groups in event handling functions
    fsnotify: Exchange list heads instead of moving elements
    fsnotify: srcu to protect read side of inode and vfsmount locks
    fsnotify: use an explicit flag to indicate fsnotify_destroy_mark has been called
    fsnotify: use _rcu functions for mark list traversal
    fsnotify: place marks on object in order of group memory address
    vfs/fsnotify: fsnotify_close can delay the final work in fput
    fsnotify: store struct file not struct path
    ...

    Fix up trivial delete/modify conflict in fs/notify/inotify/inotify.c.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)
    no need for list_for_each_entry_safe()/resetting with superblock list
    Fix sget() race with failing mount
    vfs: don't hold s_umount over close_bdev_exclusive() call
    sysv: do not mark superblock dirty on remount
    sysv: do not mark superblock dirty on mount
    btrfs: remove junk sb_dirt change
    BFS: clean up the superblock usage
    AFFS: wait for sb synchronization when needed
    AFFS: clean up dirty flag usage
    cifs: truncate fallout
    mbcache: fix shrinker function return value
    mbcache: Remove unused features
    add f_flags to struct statfs(64)
    pass a struct path to vfs_statfs
    update VFS documentation for method changes.
    All filesystems that need invalidate_inode_buffers() are doing that explicitly
    convert remaining ->clear_inode() to ->evict_inode()
    Make ->drop_inode() just return whether inode needs to be dropped
    fs/inode.c:clear_inode() is gone
    fs/inode.c:evict() doesn't care about delete vs. non-delete paths now
    ...

    Fix up trivial conflicts in fs/nilfs2/super.c

    Linus Torvalds
     

10 Aug, 2010

4 commits

  • The asm-generic/iomap.h provides these functions already, but the
    non-generic fallback defines do not.

    Signed-off-by: Mike Frysinger
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • Define stubs for the numa_*_id() generic percpu related functions for
    non-NUMA configurations in where the other
    non-numa stubs live.

    Fixes ia64 !NUMA build breakage -- e.g., tiger_defconfig

    Back out now unneeded '#ifndef CONFIG_NUMA' guards from ia64 smpboot.c

    Signed-off-by: Lee Schermerhorn
    Tested-by: Tony Luck
    Acked-by: Tony Luck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee Schermerhorn
     
  • The start/stop_critical_timing functions for preemptirqsoff, preemptoff
    and irqsoff tracers contain atomic_inc() and atomic_dec() operations.

    Atomic operations use local_irq_save/restore macros to ensure atomic
    access but they are traced by the same function which is causing recursion
    problem.

    The reason is when these tracers are turn ON then the
    local_irq_save/restore macros are changed in include/linux/irqflags.h to
    call trace_hardirqs_on/off which call start/stop_critical_timing.

    Microblaze was affected because it uses generic atomic implementation.

    Signed-off-by: Michal Simek
    Acked-by: Steven Rostedt
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Simek
     
  • Add a flags field to help glibc implementing statvfs(3) efficiently.

    We copy the flag values from glibc, and add a new ST_VALID flag to
    denote that f_flags is implemented.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     

09 Aug, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    arch/tile: check kmalloc() result
    arch/tile: catch up on various minor cleanups.
    arch/tile: avoid erroneous error return for PTRACE_POKEUSR.
    tile: set ARCH_KMALLOC_MINALIGN
    tile: remove homegrown L1_CACHE_ALIGN macro
    arch/tile: Miscellaneous cleanup changes.
    arch/tile: Split the icache flush code off to a generic header.
    arch/tile: Fix bug in support for atomic64_xx() ops.
    arch/tile: Shrink the tile-opcode files considerably.
    arch/tile: Add driver to enable access to the user dynamic network.
    arch/tile: Enable more sophisticated IRQ model for 32-bit chips.
    Move list types from to .
    Add wait4() back to the set of syscalls.
    Revert adding some arch-specific signal syscalls to .
    arch/tile: Do not use GFP_KERNEL for dma_alloc_coherent(). Feedback from fujita.tomonori@lab.ntt.co.jp.
    arch/tile: core support for Tilera 32-bit chips.
    Fix up the "generic" unistd.h ABI to be more useful.

    Linus Torvalds
     

07 Aug, 2010

2 commits

  • UP accessors didn't take care of __percpu notations leading to a lot
    of spurious sparse warnings on UP configurations. Fix it.

    Signed-off-by: Namhyung Kim
    Signed-off-by: Tejun Heo

    Namhyung Kim
     
  • …git/tip/linux-2.6-tip

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)
    tracing/kprobes: unregister_trace_probe needs to be called under mutex
    perf: expose event__process function
    perf events: Fix mmap offset determination
    perf, powerpc: fsl_emb: Restore setting perf_sample_data.period
    perf, powerpc: Convert the FSL driver to use local64_t
    perf tools: Don't keep unreferenced maps when unmaps are detected
    perf session: Invalidate last_match when removing threads from rb_tree
    perf session: Free the ref_reloc_sym memory at the right place
    x86,mmiotrace: Add support for tracing STOS instruction
    perf, sched migration: Librarize task states and event headers helpers
    perf, sched migration: Librarize the GUI class
    perf, sched migration: Make the GUI class client agnostic
    perf, sched migration: Make it vertically scrollable
    perf, sched migration: Parameterize cpu height and spacing
    perf, sched migration: Fix key bindings
    perf, sched migration: Ignore unhandled task states
    perf, sched migration: Handle ignored migrate out events
    perf: New migration tool overview
    tracing: Drop cpparg() macro
    perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call
    ...

    Fix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c

    Linus Torvalds
     

06 Aug, 2010

2 commits

  • Chris Metcalf
     
  • * 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6: (63 commits)
    of/platform: Register of_platform_drivers with an "of:" prefix
    of/address: Clean up function declarations
    of/spi: call of_register_spi_devices() from spi core code
    of: Provide default of_node_to_nid() implementation.
    of/device: Make of_device_make_bus_id() usable by other code.
    of/irq: Fix endian issues in parsing interrupt specifiers
    of: Fix phandle endian issues
    of/flattree: fix of_flat_dt_is_compatible() to match the full compatible string
    of: remove of_default_bus_ids
    of: make of_find_device_by_node generic
    microblaze: remove references to of_device and to_of_device
    sparc: remove references to of_device and to_of_device
    powerpc: remove references to of_device and to_of_device
    of/device: Replace of_device with platform_device in includes and core code
    of/device: Protect against binding of_platform_drivers to non-OF devices
    of: remove asm/of_device.h
    of: remove asm/of_platform.h
    of/platform: remove all of_bus_type and of_platform_bus_type references
    of: Merge of_platform_bus_type with platform_bus_type
    drivercore/of: Add OF style matching to platform bus
    ...

    Fix up trivial conflicts in arch/microblaze/kernel/Makefile due to just
    some obj-y removals by the devicetree branch, while the microblaze
    updates added a new file.

    Linus Torvalds
     

05 Aug, 2010

1 commit

  • * upstream/pvhvm:
    Introduce CONFIG_XEN_PVHVM compile option
    blkfront: do not create a PV cdrom device if xen_hvm_guest
    support multiple .discard.* sections to avoid section type conflicts
    xen/pvhvm: fix build problem when !CONFIG_XEN
    xenfs: enable for HVM domains too
    x86: Call HVMOP_pagetable_dying on exit_mmap.
    x86: Unplug emulated disks and nics.
    x86: Use xen_vcpuop_clockevent, xen_clocksource and xen wallclock.
    xen: Fix find_unbound_irq in presence of ioapic irqs.
    xen: Add suspend/resume support for PV on HVM guests.
    xen: Xen PCI platform device driver.
    x86/xen: event channels delivery on HVM.
    x86: early PV on HVM features initialization.
    xen: Add support for HVM hypercalls.

    Conflicts:
    arch/x86/xen/enlighten.c
    arch/x86/xen/time.c

    Jeremy Fitzhardinge
     

02 Aug, 2010

1 commit


28 Jul, 2010

3 commits

  • sparc used the same value as FMODE_NONOTIFY so change FMODE_NONOTIFY to be
    something unique.

    Signed-off-by: Wu Fengguang
    Signed-off-by: Eric Paris

    Signed-off-by: Wu Fengguang
     
  • This is a new f_mode which can only be set by the kernel. It indicates
    that the fd was opened by fanotify and should not cause future fanotify
    events. This is needed to prevent fanotify livelock. An example of
    obvious livelock is from fanotify close events.

    Process A closes file1
    This creates a close event for file1.
    fanotify opens file1 for Listener X
    Listener X deals with the event and closes its fd for file1.
    This creates a close event for file1.
    fanotify opens file1 for Listener X
    Listener X deals with the event and closes its fd for file1.
    This creates a close event for file1.
    fanotify opens file1 for Listener X
    Listener X deals with the event and closes its fd for file1.
    notice a pattern?

    The fix is to add the FMODE_NONOTIFY bit to the open filp done by the kernel
    for fanotify. Thus when that file is used it will not generate future
    events.

    This patch simply defines the bit.

    Signed-off-by: Eric Paris

    Eric Paris
     
  • gcc 4.4.4 will complain if you use a .discard section for both text and
    data ("causes a section type conflict"). Add support for ".discard.*"
    sections, and use .discard.text for a dummy function in the x86
    RESERVE_BRK() macro.

    Signed-off-by: Jeremy Fitzhardinge

    Jeremy Fitzhardinge
     

24 Jul, 2010

1 commit

  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    vmlinux.lds: fix .data..init_task output section (fix popwerpc boot)
    powerpc: Fix erroneous lmb->memblock conversions
    powerpc/mm: Add some debug output when hash insertion fails
    powerpc/mm: Fix bugs in huge page hashing
    powerpc/mm: Move around testing of _PAGE_PRESENT in hash code
    powerpc/mm: Handle hypervisor pte insert failure in __hash_page_huge
    powerpc/kexec: Fix boundary case for book-e kexec memory limits

    Linus Torvalds
     

23 Jul, 2010

1 commit

  • The .data..init_task output section was missing
    a load offset causing a popwerpc target to fail to boot.

    Sean MacLennan tracked it down to the definition of
    INIT_TASK_DATA_SECTION().

    There are only two users of INIT_TASK_DATA_SECTION()
    in the kernel today: cris and popwerpc.
    cris do not support relocatable kernels and is thus not
    impacted by this change.

    Fix INIT_TASK_DATA_SECTION() to specify load offset like
    all other output sections.

    Reported-by: Sean MacLennan
    Signed-off-by: Sam Ravnborg
    Signed-off-by: Benjamin Herrenschmidt

    Sam Ravnborg
     

21 Jul, 2010

1 commit

  • We define a number of symbols in the linker scipt like this:

    __start_syscalls_metadata = .;
    *(__syscalls_metadata)

    But we do not know the alignment of "." when we assign
    the __start_syscalls_metadata symbol.
    gcc started to uses bigger alignment for structs (32 bytes),
    so we saw situations where the linker due to alignment
    constraints increased the value of "." after the symbol assignment.

    This resulted in boot fails.

    Fix this by forcing a 32 byte alignment of "." before the
    assignment.

    This patch introduces the forced alignment for
    ftrace_events and syscalls_metadata.
    It may be required in more places.

    Reported-by: Zeev Tarantov
    Signed-off-by: Sam Ravnborg
    LKML-Reference:
    Cc: Frederic Weisbecker
    Signed-off-by: Steven Rostedt

    Sam Ravnborg
     

16 Jul, 2010

2 commits


06 Jul, 2010

2 commits

  • Currently the kernel uses the struct device_node.data pointer to resolve
    a struct gpio_chip pointer from a device tree node. However, the .data
    member doesn't provide any type checking and there aren't any rules
    enforced on what it should be used for. There's no guarantee that the
    data stored in it actually points to an gpio_chip pointer.

    Instead of relying on the .data pointer, this patch modifies the code
    to add a lookup function which scans through the registered gpio_chips
    and returns the gpio_chip that has a pointer to the specified
    device_node.

    Signed-off-by: Grant Likely
    CC: Andrew Morton
    CC: Anton Vorontsov
    CC: Grant Likely
    CC: David Brownell
    CC: Bill Gatliff
    CC: Dmitry Eremin-Solenikov
    CC: Benjamin Herrenschmidt
    CC: Jean Delvare
    CC: linux-kernel@vger.kernel.org
    CC: devicetree-discuss@lists.ozlabs.org

    Grant Likely
     
  • The OF gpio infrastructure is great for describing GPIO connections within
    the device tree. However, using a GPIO binding still requires changes to
    the gpio controller just to add an of_gpio structure. In most cases, the
    gpio controller doesn't actually need any special support and the simple
    OF gpio mapping function is more than sufficient. Additional, the current
    scheme of using of_gpio_chip requires a convoluted scheme to maintain
    1:1 mappings between of_gpio_chip and gpio_chip instances.

    If the struct of_gpio_chip data members were moved into struct gpio_chip,
    then it would simplify the processing of OF gpio bindings, and it would
    make it trivial to use device tree OF connections on existing gpiolib
    controller drivers.

    This patch eliminates the of_gpio_chip structure and moves the relevant
    fields into struct gpio_chip (conditional on CONFIG_OF_GPIO). This move
    simplifies the existing code and prepares for adding automatic device tree
    support to existing drivers.

    Signed-off-by: Grant Likely
    Cc: Andrew Morton
    Cc: Anton Vorontsov
    Cc: Grant Likely
    Cc: David Brownell
    Cc: Bill Gatliff
    Cc: Dmitry Eremin-Solenikov
    Cc: Benjamin Herrenschmidt
    Cc: Jean Delvare

    Anton Vorontsov
     

26 Jun, 2010

1 commit

  • The initial pass at the generic ABI assumed that wait4() could be
    easily expressed using waitid(). Although it's true that wait4()
    can be built on waitid(), it's awkward enough that it makes more
    sense to continue to include wait4 in the generic syscall ABI.

    Since there is already a deprecated wait4 in the ABI, this change
    converts that wait4 into old_wait, and puts wait4 in the next
    available slot for new supported syscalls, after the platform-specific
    syscalls at number 260.

    Signed-off-by: Chris Metcalf
    Acked-by: Arnd Bergmann

    Chris Metcalf
     

18 Jun, 2010

1 commit