06 May, 2011

1 commit

  • This patch adds a multiple message send syscall and is the send
    version of the existing recvmmsg syscall. This is heavily
    based on the patch by Arnaldo that added recvmmsg.

    I wrote a microbenchmark to test the performance gains of using
    this new syscall:

    http://ozlabs.org/~anton/junkcode/sendmmsg_test.c

    The test was run on a ppc64 box with a 10 Gbit network card. The
    benchmark can send both UDP and RAW ethernet packets.

    64B UDP

    batch pkts/sec
    1 804570
    2 872800 (+ 8 %)
    4 916556 (+14 %)
    8 939712 (+17 %)
    16 952688 (+18 %)
    32 956448 (+19 %)
    64 964800 (+20 %)

    64B raw socket

    batch pkts/sec
    1 1201449
    2 1350028 (+12 %)
    4 1461416 (+22 %)
    8 1513080 (+26 %)
    16 1541216 (+28 %)
    32 1553440 (+29 %)
    64 1557888 (+30 %)

    We see a 20% improvement in throughput on UDP send and 30%
    on raw socket send.

    [ Add sparc syscall entries. -DaveM ]

    Signed-off-by: Anton Blanchard
    Signed-off-by: David S. Miller

    Anton Blanchard
     

22 Apr, 2011

1 commit

  • mac-fec.c was setting individual UDP address registers instead of multicast
    group address registers when joining a multicast group.
    This prevented from correctly receiving UDP multicast packets.
    According to datasheet, replaced hash_table_high and hash_table_low
    with grp_hash_table_high and grp_hash_table_low respectively.
    Also renamed hash_table_* with grp_hash_table_* in struct fec declaration
    for 8xx: these registers are used only for multicast there.

    Tested on a MPC5121 based board.
    Build tested also against mpc866_ads_defconfig.

    Signed-off-by: Andrea Galbusera
    Signed-off-by: David S. Miller

    Andrea Galbusera
     

08 Apr, 2011

1 commit


01 Apr, 2011

8 commits


31 Mar, 2011

2 commits

  • Fixes generated by 'codespell' and manually reviewed.

    Signed-off-by: Lucas De Marchi

    Lucas De Marchi
     
  • …git/tip/linux-2.6-tip

    * 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    avr32: Fix missing irq namespace conversion
    powerpc: qe_ic: Rename get_irq_desc_data and get_irq_desc_chip
    genirq: Remove the now obsolete config options and select statements
    arm: versatile : Fix typo introduced in irq namespace cleanup
    sound: Fixup the last user of the old irq functions
    genirq: Remove obsolete comment
    genirq: Remove now obsolete set_irq_wake()
    sh: Fix irq cleanup fallout
    x86: apb_timer: Fixup genirq fallout
    genirq: Fix misnamed label in handle_edge_eoi_irq

    Fix up crazy conflict in arch/powerpc/include/asm/qe_ic.h:

    - commit eead4d5c63ff ("powerpc: qe_ic: Rename get_irq_desc_data and
    get_irq_desc_chip") made the helper functions use
    irq_desc_get_handler_data() instead of the legacy (and no longer
    existing) get_irq_desc_data.

    - commit d4db35e8dc96 ("powerpc/qe_ic: Fix another breakage from the
    irq_data conversion") used irq_desc_get_chip_data() instead.

    According to Thomas, the former is the correct direct conversion, but it
    does look like both should work (arch/powerpc/sysdev/qe_lib/qe_ic.c
    seems to initialize both to the same thing), and the chip data in some
    ways is the more logical. Somebody should really decide on one of the
    other.

    This merge picks irq_desc_get_handler_data() as the straightforward pure
    conversion to new names, as per Thomas.

    Linus Torvalds
     

30 Mar, 2011

7 commits


24 Mar, 2011

6 commits

  • There is no user now.

    Signed-off-by: FUJITA Tomonori
    Cc: David Miller
    Cc: Ralf Baechle
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • minix bit operations are only used by minix filesystem and useless by
    other modules. Because byte order of inode and block bitmaps is different
    on each architecture like below:

    m68k:
    big-endian 16bit indexed bitmaps

    h8300, microblaze, s390, sparc, m68knommu:
    big-endian 32 or 64bit indexed bitmaps

    m32r, mips, sh, xtensa:
    big-endian 32 or 64bit indexed bitmaps for big-endian mode
    little-endian bitmaps for little-endian mode

    Others:
    little-endian bitmaps

    In order to move minix bit operations from asm/bitops.h to architecture
    independent code in minix filesystem, this provides two config options.

    CONFIG_MINIX_FS_BIG_ENDIAN_16BIT_INDEXED is only selected by m68k.
    CONFIG_MINIX_FS_NATIVE_ENDIAN is selected by the architectures which use
    native byte order bitmaps (h8300, microblaze, s390, sparc, m68knommu,
    m32r, mips, sh, xtensa). The architectures which always use little-endian
    bitmaps do not select these options.

    Finally, we can remove minix bit operations from asm/bitops.h for all
    architectures.

    Signed-off-by: Akinobu Mita
    Acked-by: Arnd Bergmann
    Acked-by: Greg Ungerer
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Cc: Andreas Schwab
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Yoshinori Sato
    Cc: Michal Simek
    Cc: "David S. Miller"
    Cc: Hirokazu Takata
    Acked-by: Ralf Baechle
    Acked-by: Paul Mundt
    Cc: Chris Zankel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • As the result of conversions, there are no users of ext2 non-atomic bit
    operations except for ext2 filesystem itself. Now we can put them into
    architecture independent code in ext2 filesystem, and remove from
    asm/bitops.h for all architectures.

    Signed-off-by: Akinobu Mita
    Cc: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Introduce little-endian bit operations by renaming existing powerpc native
    little-endian bit operations and changing them to take any pointer types.

    Signed-off-by: Akinobu Mita
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • This makes the little-endian bitops take any pointer types by changing the
    prototypes and adding casts in the preprocessor macros.

    That would seem to at least make all the filesystem code happier, and they
    can continue to do just something like

    #define ext2_set_bit __test_and_set_bit_le

    (or whatever the exact sequence ends up being).

    Signed-off-by: Akinobu Mita
    Cc: Arnd Bergmann
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Mikael Starvik
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: "Luck, Tony"
    Cc: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Matthew Wilcox
    Cc: Grant Grundler
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Hirokazu Takata
    Cc: "David S. Miller"
    Cc: Chris Zankel
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Hans-Christian Egtvedt
    Cc: "H. Peter Anvin"
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • As a preparation for providing little-endian bitops for all architectures,
    This renames generic implementation of little-endian bitops. (remove
    "generic_" prefix and postfix "_le")

    s/generic_find_next_le_bit/find_next_bit_le/
    s/generic_find_next_zero_le_bit/find_next_zero_bit_le/
    s/generic_find_first_zero_le_bit/find_first_zero_bit_le/
    s/generic___test_and_set_le_bit/__test_and_set_bit_le/
    s/generic___test_and_clear_le_bit/__test_and_clear_bit_le/
    s/generic_test_le_bit/test_bit_le/
    s/generic___set_le_bit/__set_bit_le/
    s/generic___clear_le_bit/__clear_bit_le/
    s/generic_test_and_set_le_bit/test_and_set_bit_le/
    s/generic_test_and_clear_le_bit/test_and_clear_bit_le/

    Signed-off-by: Akinobu Mita
    Acked-by: Arnd Bergmann
    Acked-by: Hans-Christian Egtvedt
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Cc: Andreas Schwab
    Cc: Greg Ungerer
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

23 Mar, 2011

2 commits

  • All architectures can use the common dma_addr_t typedef now. We can
    remove the arch specific dma_addr_t.

    Signed-off-by: FUJITA Tomonori
    Acked-by: Arnd Bergmann
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Ivan Kokshaysky
    Cc: Richard Henderson
    Cc: Matt Turner
    Cc: "Luck, Tony"
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Chris Metcalf
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • Add a node parameter to alloc_thread_info(), and change its name to
    alloc_thread_info_node()

    This change is needed to allow NUMA aware kthread_create_on_cpu()

    Signed-off-by: Eric Dumazet
    Acked-by: David S. Miller
    Reviewed-by: Andi Kleen
    Acked-by: Rusty Russell
    Cc: Tejun Heo
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: David Howells
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Dumazet
     

21 Mar, 2011

2 commits

  • In some cases during a threaded core dump not all the threads will have
    a full register set. This happens when the signal causing the core dump
    races with a thread exiting. The race happens when the exiting thread
    has entered the kernel for the last time before the signal arrives, but
    doesn't get far enough through the exit code to avoid being included
    in the core dump.

    So we get a thread included in the core dump which is never going to go
    out to userspace again and only has a partial register set recorded

    Normally we would catch each thread as it is about to go into userspace
    and capture the full register set then.

    However, this exiting thread is never going to go out to userspace
    again, so we have no way to capture its full register set. It doesn't
    really matter, though, as this is a thread which is effectively
    already dead.

    So instead of hitting a BUG() in this case (a really bad choice of
    action in the first place), we use a poison value for the register
    values.

    [BenH]: Some cosmetic/stylistic changes and fix build on ppc32

    Signed-off-by: Mike Wolf
    Signed-off-by: Benjamin Herrenschmidt

    Mike Wolf
     
  • This property, defined in the Open PIC binding, tells the kernel not to use
    the reset bit in the global configuration register. Additionally, its
    presence mandates that only sources which are actually used (i.e. appear in
    the device tree) should have their VECPRI bits initialized.

    Although, "pic-no-reset" can be used for the same use cases that
    "protected-sources" is covering, the "protected-sources" implementation was
    left completely intact. This is a more pragmatic approach as there are
    already several existing systems which use protected sources. If
    "pic-no-reset" *and* "protected-sources" are both used, however, then
    "pic-no-reset" takes precedence in terms of the init behavior and the
    sanity checks done by protected sources will still take place.

    Signed-off-by: Meador Inge
    Cc: Hollis Blanchard
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Benjamin Herrenschmidt

    Meador Inge
     

19 Mar, 2011

1 commit

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

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)
    trace, filters: Initialize the match variable in process_ops() properly
    trace, documentation: Fix branch profiling location in debugfs
    oprofile, s390: Cleanups
    oprofile, s390: Remove hwsampler_files.c and merge it into init.c
    perf: Fix tear-down of inherited group events
    perf: Reorder & optimize perf_event_context to remove alignment padding on 64 bit builds
    perf: Handle stopped state with tracepoints
    perf: Fix the software events state check
    perf, powerpc: Handle events that raise an exception without overflowing
    perf, x86: Use INTEL_*_CONSTRAINT() for all PEBS event constraints
    perf, x86: Clean up SandyBridge PEBS events
    perf lock: Fix sorting by wait_min
    perf tools: Version incorrect with some versions of grep
    perf evlist: New command to list the names of events present in a perf.data file
    perf script: Add support for H/W and S/W events
    perf script: Add support for dumping symbols
    perf script: Support custom field selection for output
    perf script: Move printing of 'common' data from print_event and rename
    perf tracing: Remove print_graph_cpu and print_graph_proc from trace-event-parse
    perf script: Change process_event prototype
    ...

    Linus Torvalds
     

18 Mar, 2011

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (62 commits)
    powerpc/85xx: Fix signedness bug in cache-sram
    powerpc/fsl: 85xx: document cache sram bindings
    powerpc/fsl: define binding for fsl mpic interrupt controllers
    powerpc/fsl_msi: Handle msi-available-ranges better
    drivers/serial/ucc_uart.c: Add of_node_put to avoid memory leak
    powerpc/85xx: Fix SPE float to integer conversion failure
    powerpc/85xx: Update sata controller compatible for p1022ds board
    ATA: Add FSL sata v2 controller support
    powerpc/mpc8xxx_gpio: simplify searching for 'fsl, qoriq-gpio' compatiable
    powerpc/8xx: remove obsolete mgsuvd board
    powerpc/82xx: rename and update mgcoge board support
    powerpc/83xx: rename and update kmeter1
    powerpc/85xx: Workaroudn e500 CPU erratum A005
    powerpc/fsl_pci: Add support for FSL PCIe controllers v2.x
    powerpc/85xx: Fix writing to spin table 'cpu-release-addr' on ppc64e
    powerpc/pseries: Disable MSI using new interface if possible
    powerpc: Enable GENERIC_HARDIRQS_NO_DEPRECATED.
    powerpc: core irq_data conversion.
    powerpc: sysdev/xilinx_intc irq_data conversion.
    powerpc: sysdev/uic irq_data conversion.
    ...

    Fix up conflicts in arch/powerpc/sysdev/fsl_msi.c (due to getting rid of
    of_platform_driver in arch/powerpc)

    Linus Torvalds
     

17 Mar, 2011

3 commits

  • Benjamin Herrenschmidt
     
  • * 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6: (21 commits)
    tty: serial: altera_jtaguart: Add device tree support
    tty: serial: altera_uart: Add devicetree support
    dt: eliminate of_platform_driver shim code
    dt: Eliminate of_platform_{,un}register_driver
    dt/serial: Eliminate users of of_platform_{,un}register_driver
    dt/usb: Eliminate users of of_platform_{,un}register_driver
    dt/video: Eliminate users of of_platform_{,un}register_driver
    dt/net: Eliminate users of of_platform_{,un}register_driver
    dt/sound: Eliminate users of of_platform_{,un}register_driver
    dt/spi: Eliminate users of of_platform_{,un}register_driver
    dt: uartlite: merge platform and of_platform driver bindings
    dt: xilinx_hwicap: merge platform and of_platform driver bindings
    ipmi: convert OF driver to platform driver
    leds/leds-gpio: merge platform_driver with of_platform_driver
    dt/sparc: Eliminate users of of_platform_{,un}register_driver
    dt/powerpc: Eliminate users of of_platform_{,un}register_driver
    dt/powerpc: move of_bus_type infrastructure to ibmebus
    drivercore/dt: add a match table pointer to struct device
    dt: Typo fix.
    altera_ps2: Add devicetree support
    ...

    Linus Torvalds
     
  • * 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (76 commits)
    pch_uart: reference clock on CM-iTC
    pch_phub: add new device ML7213
    n_gsm: fix UIH control byte : P bit should be 0
    n_gsm: add a documentation
    serial: msm_serial_hs: Add MSM high speed UART driver
    tty_audit: fix tty_audit_add_data live lock on audit disabled
    tty: move cd1865.h to drivers/staging/tty/
    Staging: tty: fix build with epca.c driver
    pcmcia: synclink_cs: fix prototype for mgslpc_ioctl()
    Staging: generic_serial: fix double locking bug
    nozomi: don't use flush_scheduled_work()
    tty/serial: Relax the device_type restriction from of_serial
    MAINTAINERS: Update HVC file patterns
    tty: phase out of ioctl file pointer for tty3270 as well
    tty: forgot to remove ipwireless from drivers/char/pcmcia/Makefile
    pch_uart: Fix DMA channel miss-setting issue.
    pch_uart: fix exclusive access issue
    pch_uart: fix auto flow control miss-setting issue
    pch_uart: fix uart clock setting issue
    pch_uart : Use dev_xxx not pr_xxx
    ...

    Fix up trivial conflicts in drivers/misc/pch_phub.c (same patch applied
    twice, then changes to the same area in one branch)

    Linus Torvalds
     

16 Mar, 2011

4 commits

  • Events on POWER7 can roll back if a speculative event doesn't
    eventually complete. Unfortunately in some rare cases they will
    raise a performance monitor exception. We need to catch this to
    ensure we reset the PMC. In all cases the PMC will be 256 or less
    cycles from overflow.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Peter Zijlstra
    Cc: # as far back as it applies cleanly
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Anton Blanchard
     
  • …el/git/tip/linux-2.6-tip

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)
    x86: Clean up apic.c and apic.h
    x86: Remove superflous goal definition of tsc_sync
    x86: dt: Correct local apic documentation in device tree bindings
    x86: dt: Cleanup local apic setup
    x86: dt: Fix OLPC=y/INTEL_CE=n build
    rtc: cmos: Add OF bindings
    x86: ce4100: Use OF to setup devices
    x86: ioapic: Add OF bindings for IO_APIC
    x86: dtb: Add generic bus probe
    x86: dtb: Add support for PCI devices backed by dtb nodes
    x86: dtb: Add device tree support for HPET
    x86: dtb: Add early parsing of IO_APIC
    x86: dtb: Add irq domain abstraction
    x86: dtb: Add a device tree for CE4100
    x86: Add device tree support
    x86: e820: Remove conditional early mapping in parse_e820_ext
    x86: OLPC: Make OLPC=n build again
    x86: OLPC: Remove extra OLPC_OPENFIRMWARE_DT indirection
    x86: OLPC: Cleanup config maze completely
    x86: OLPC: Hide OLPC_OPENFIRMWARE config switch
    ...

    Fix up conflicts in arch/x86/platform/ce4100/ce4100.c

    Linus Torvalds
     
  • …el/git/tip/linux-2.6-tip

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    rtmutex: tester: Remove the remaining BKL leftovers
    lockdep/timers: Explain in detail the locking problems del_timer_sync() may cause
    rtmutex: Simplify PI algorithm and make highest prio task get lock
    rwsem: Remove redundant asmregparm annotation
    rwsem: Move duplicate function prototypes to linux/rwsem.h
    rwsem: Unify the duplicate rwsem_is_locked() inlines
    rwsem: Move duplicate init macros and functions to linux/rwsem.h
    rwsem: Move duplicate struct rwsem declaration to linux/rwsem.h
    x86: Cleanup rwsem_count_t typedef
    rwsem: Cleanup includes
    locking: Remove deprecated lock initializers
    cred: Replace deprecated spinlock initialization
    kthread: Replace deprecated spinlock initialization
    xtensa: Replace deprecated spinlock initialization
    um: Replace deprecated spinlock initialization
    sparc: Replace deprecated spinlock initialization
    mips: Replace deprecated spinlock initialization
    cris: Replace deprecated spinlock initialization
    alpha: Replace deprecated spinlock initialization
    rtmutex-tester: Remove BKL tests

    Linus Torvalds
     
  • …el/git/tip/linux-2.6-tip

    * 'core-futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    arm: Remove bogus comment in futex_atomic_cmpxchg_inatomic()
    futex: Deobfuscate handle_futex_death()
    plist: Add priority list test
    plist: Shrink struct plist_head
    futex,plist: Remove debug lock assignment from plist_node
    futex,plist: Pass the real head of the priority list to plist_del()
    futex: Sanitize futex ops argument types
    futex: Sanitize cmpxchg_futex_value_locked API
    futex: Remove redundant pagefault_disable in futex_atomic_cmpxchg_inatomic()
    futex: Avoid redudant evaluation of task_pid_vnr()
    futex: Update futex_wait_setup comments about locking

    Linus Torvalds
     

15 Mar, 2011

1 commit

  • This erratum can occur if a single-precision floating-point,
    double-precision floating-point or vector floating-point instruction on a
    mispredicted branch path signals one of the floating-point data interrupts
    which are enabled by the SPEFSCR (FINVE, FDBZE, FUNFE or FOVFE bits). This
    interrupt must be recorded in a one-cycle window when the misprediction is
    resolved. If this extremely rare event should occur, the result could be:

    The SPE Data Exception from the mispredicted path may be reported
    erroneously if a single-precision floating-point, double-precision
    floating-point or vector floating-point instruction is the second
    instruction on the correct branch path.

    According to errata description, some efp instructions which are not
    supposed to trigger SPE exceptions can trigger the exceptions in this case.
    However, as we haven't emulated these instructions here, a signal will
    send to userspace, and userspace application would exit.

    This patch re-issue the efp instruction that we haven't emulated,
    so that hardware can properly execute it again if this case happen.

    Signed-off-by: Liu Yu
    Signed-off-by: Kumar Gala

    Liu Yu