21 Feb, 2010

1 commit

  • On VIVT ARM, when we have multiple shared mappings of the same file
    in the same MM, we need to ensure that we have coherency across all
    copies. We do this via make_coherent() by making the pages
    uncacheable.

    This used to work fine, until we allowed highmem with highpte - we
    now have a page table which is mapped as required, and is not available
    for modification via update_mmu_cache().

    Ralf Beache suggested getting rid of the PTE value passed to
    update_mmu_cache():

    On MIPS update_mmu_cache() calls __update_tlb() which walks pagetables
    to construct a pointer to the pte again. Passing a pte_t * is much
    more elegant. Maybe we might even replace the pte argument with the
    pte_t?

    Ben Herrenschmidt would also like the pte pointer for PowerPC:

    Passing the ptep in there is exactly what I want. I want that
    -instead- of the PTE value, because I have issue on some ppc cases,
    for I$/D$ coherency, where set_pte_at() may decide to mask out the
    _PAGE_EXEC.

    So, pass in the mapped page table pointer into update_mmu_cache(), and
    remove the PTE value, updating all implementations and call sites to
    suit.

    Includes a fix from Stephen Rothwell:

    sparc: fix fallout from update_mmu_cache API change

    Signed-off-by: Stephen Rothwell

    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Russell King

    Russell King
     

16 Dec, 2009

1 commit

  • Currently all architectures but microblaze unconditionally define
    USE_ELF_CORE_DUMP. The microblaze omission seems like an error to me, so
    let's kill this ifdef and make sure we are the same everywhere.

    Signed-off-by: Christoph Hellwig
    Acked-by: Hugh Dickins
    Cc:
    Cc: Michal Simek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

15 Dec, 2009

6 commits


11 Dec, 2009

1 commit


09 Dec, 2009

1 commit

  • * 'for-2.6.33' of git://git.kernel.dk/linux-2.6-block: (113 commits)
    cfq-iosched: Do not access cfqq after freeing it
    block: include linux/err.h to use ERR_PTR
    cfq-iosched: use call_rcu() instead of doing grace period stall on queue exit
    blkio: Allow CFQ group IO scheduling even when CFQ is a module
    blkio: Implement dynamic io controlling policy registration
    blkio: Export some symbols from blkio as its user CFQ can be a module
    block: Fix io_context leak after failure of clone with CLONE_IO
    block: Fix io_context leak after clone with CLONE_IO
    cfq-iosched: make nonrot check logic consistent
    io controller: quick fix for blk-cgroup and modular CFQ
    cfq-iosched: move IO controller declerations to a header file
    cfq-iosched: fix compile problem with !CONFIG_CGROUP
    blkio: Documentation
    blkio: Wait on sync-noidle queue even if rq_noidle = 1
    blkio: Implement group_isolation tunable
    blkio: Determine async workload length based on total number of queues
    blkio: Wait for cfq queue to get backlogged if group is empty
    blkio: Propagate cgroup weight updation to cfq groups
    blkio: Drop the reference to queue once the task changes cgroup
    blkio: Provide some isolation between groups
    ...

    Linus Torvalds
     

03 Dec, 2009

1 commit


26 Nov, 2009

1 commit

  • Mtdblock driver doesn't call flush_dcache_page for pages in request. So,
    this causes problems on architectures where the icache doesn't fill from
    the dcache or with dcache aliases. The patch fixes this.

    The ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE symbol was introduced to avoid
    pointless empty cache-thrashing loops on architectures for which
    flush_dcache_page() is a no-op. Every architecture was provided with this
    flush pages on architectires where ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE is
    equal 1 or do nothing otherwise.

    See "fix mtd_blkdevs problem with caches on some architectures" discussion
    on LKML for more information.

    Signed-off-by: Ilya Loginov
    Cc: Ingo Molnar
    Cc: David Woodhouse
    Cc: Peter Horton
    Cc: "Ed L. Cashin"
    Signed-off-by: Jens Axboe

    Ilya Loginov
     

19 Nov, 2009

1 commit


09 Nov, 2009

1 commit


04 Nov, 2009

4 commits

  • Index `ipi_num' is signed, test whether it is negative to
    make sure we don't get a negative array element.

    Signed-off-by: Roel Kluin
    Signed-off-by: Hirokazu Takata

    Roel Kluin
     
  • - Support bzip2 and lzma kernel compression for m32r.
    - Clean up arch/m32r/boot/compressed/misc.c.

    Signed-off-by: Hirokazu Takata

    Hirokazu Takata
     
  • Building with --build-id option, .note.gnu.build-id section is added
    to vmlinux.bin. But some old buggy binutils creates a huge vmlinux.bin,
    and a bootloader fails to boot its zImage as well.

    This patch adds a NOTES macro to a linker script vmlinux.ld.S to put
    .note.gnu.build-id section into .note section.
    Then, the .note section will be removed, because "-R .note" option is
    specified in OBJCOPYFLAGS to make a vmlinux.bin binary.

    Signed-off-by: Hirokazu Takata

    Hirokazu Takata
     
  • The kernel.h macro DIV_ROUND_CLOSEST performs the computation (x + d/2)/d
    but is perhaps more readable.

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @haskernel@
    @@

    @depends on haskernel@
    expression x,__divisor;
    @@

    - (((x) + ((__divisor) / 2)) / (__divisor))
    + DIV_ROUND_CLOSEST(x,__divisor)
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Hirokazu Takata

    Julia Lawall
     

13 Oct, 2009

1 commit

  • Create a new socket level option to report number of queue overflows

    Recently I augmented the AF_PACKET protocol to report the number of frames lost
    on the socket receive queue between any two enqueued frames. This value was
    exported via a SOL_PACKET level cmsg. AFter I completed that work it was
    requested that this feature be generalized so that any datagram oriented socket
    could make use of this option. As such I've created this patch, It creates a
    new SOL_SOCKET level option called SO_RXQ_OVFL, which when enabled exports a
    SOL_SOCKET level cmsg that reports the nubmer of times the sk_receive_queue
    overflowed between any two given frames. It also augments the AF_PACKET
    protocol to take advantage of this new feature (as it previously did not touch
    sk->sk_drops, which this patch uses to record the overflow count). Tested
    successfully by me.

    Notes:

    1) Unlike my previous patch, this patch simply records the sk_drops value, which
    is not a number of drops between packets, but rather a total number of drops.
    Deltas must be computed in user space.

    2) While this patch currently works with datagram oriented protocols, it will
    also be accepted by non-datagram oriented protocols. I'm not sure if thats
    agreeable to everyone, but my argument in favor of doing so is that, for those
    protocols which aren't applicable to this option, sk_drops will always be zero,
    and reporting no drops on a receive queue that isn't used for those
    non-participating protocols seems reasonable to me. This also saves us having
    to code in a per-protocol opt in mechanism.

    3) This applies cleanly to net-next assuming that commit
    977750076d98c7ff6cbda51858bb5a5894a9d9ab (my af packet cmsg patch) is reverted

    Signed-off-by: Neil Horman
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Neil Horman
     

12 Oct, 2009

1 commit


04 Oct, 2009

6 commits

  • This patch fixes the m32r SMP kernel after 2.6.27.

    A part of the following patch breaks m32r SMP operation.
    > m32r: convert to generic helpers for IPI function calls
    > commit 7b7426c8a615cf61df9a77b9df7d5b75d91e3fa0

    In the above patch, a CALL_FUNC_SINGLE_IPI was newly introduced,
    but the its IPI vector number was wrong in the patch code.

    The m32r SMP kernel hanged-up during boot operation, because
    the CPU_BOOT_IPI was called instead of CALL_FUNC_SINGLE_IPI
    (CPU_BOOT_IPI had no side effect at that time because the 2nd
    core had already been started up),
    as a result, csd_unlock() was not called, then a dead lock
    occurred in csd_lock_wait() after the detection of Compact Flash
    memory as IDE generic disk.

    Signed-off-by: Toshihiro HANAWA
    Signed-off-by: Hirokazu Takata

    Toshihiro HANAWA
     
  • In case CONFIG_DISCONTIGMEM is set, the memory size of system was
    always determined by CONFIG_MEMORY_SIZE and was not changeable.

    This patch fixes set_memory() of arch/m32r/mm/discontig.c so that
    we can specify memory size by the "mem=" kernel parameter.

    Signed-off-by: Hirokazu Takata

    Hirokazu Takata
     
  • Add a spinlock variable "rtc_lock".
    This is taken from arch/arm/kernel/time.c.

    Signed-off-by: Hirokazu Takata

    Hirokazu Takata
     
  • Define ioread* and iowrite* macros to fix the following build errors:

    CC [M] drivers/uio/uio_smx.o
    drivers/uio/uio_smx.c: In function 'smx_handler':
    drivers/uio/uio_smx.c:31: error: implicit declaration of function 'ioread32'
    drivers/uio/uio_smx.c:37: error: implicit declaration of function 'iowrite32'

    Signed-off-by: Hirokazu Takata

    Hirokazu Takata
     
  • - Move EXPORT_SYMBOL lines of delay loop functions
    from arch/m32r/kernel/m32r_ksyms.c to arch/m32r/lib/delay.c.
    - Export __ndelay.

    Signed-off-by: Hirokazu Takata

    Hirokazu Takata
     
  • Fix pmd_bad check code of tme_handler (TLB Miss Exception handler).
    The correct _KERNPG_TABLE value is not 0x263(=611) but 0x163.

    Signed-off-by: Hirokazu Takata

    Hirokazu Takata
     

25 Sep, 2009

1 commit

  • * 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev:
    m32r: Cleanup linker script using new linker script macros.
    m32r: Move the spi_stack_top and spu_stack_top into .init.data section.
    m32r: Remove unused .altinstructions and .exit.* code from linker script.
    m32r: Move GET_THREAD_INFO definition out of asm/thread_info.h.
    m32r: Define THREAD_SIZE only once.
    m32r: make PAGE_SIZE available to assembly.

    Linus Torvalds
     

24 Sep, 2009

6 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (39 commits)
    cpumask: Move deprecated functions to end of header.
    cpumask: remove unused deprecated functions, avoid accusations of insanity
    cpumask: use new-style cpumask ops in mm/quicklist.
    cpumask: use mm_cpumask() wrapper: x86
    cpumask: use mm_cpumask() wrapper: um
    cpumask: use mm_cpumask() wrapper: mips
    cpumask: use mm_cpumask() wrapper: mn10300
    cpumask: use mm_cpumask() wrapper: m32r
    cpumask: use mm_cpumask() wrapper: arm
    cpumask: Use accessors for cpu_*_mask: um
    cpumask: Use accessors for cpu_*_mask: powerpc
    cpumask: Use accessors for cpu_*_mask: mips
    cpumask: Use accessors for cpu_*_mask: m32r
    cpumask: remove arch_send_call_function_ipi
    cpumask: arch_send_call_function_ipi_mask: s390
    cpumask: arch_send_call_function_ipi_mask: powerpc
    cpumask: arch_send_call_function_ipi_mask: mips
    cpumask: arch_send_call_function_ipi_mask: m32r
    cpumask: arch_send_call_function_ipi_mask: alpha
    cpumask: remove obsolete topology_core_siblings and topology_thread_siblings: ia64
    ...

    Linus Torvalds
     
  • Makes code futureproof against the impending change to mm->cpu_vm_mask.

    It's also a chance to use the new cpumask_ ops which take a pointer
    (the older ones are deprecated, but there's no hurry for arch code).

    Signed-off-by: Rusty Russell
    Acked-by: Hirokazu Takata (fixes)

    Rusty Russell
     
  • Use the accessors rather than frobbing bits directly (the new versions
    are const).

    Signed-off-by: Rusty Russell
    Signed-off-by: Mike Travis

    Rusty Russell
     
  • Now everyone is converted to arch_send_call_function_ipi_mask, remove
    the shim and the #defines.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • We're weaning the core code off handing cpumask's around on-stack.
    This introduces arch_send_call_function_ipi_mask(), and by defining
    it, the old arch_send_call_function_ipi is defined by the core code.

    We also take the chance to wean the implementations off the
    obsolescent for_each_cpu_mask(): making send_ipi_mask take the pointer
    seemed the most natural way to ensure all implementations used
    for_each_cpu.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (30 commits)
    Use macros for .data.page_aligned section.
    Use macros for .bss.page_aligned section.
    Use new __init_task_data macro in arch init_task.c files.
    kbuild: Don't define ALIGN and ENTRY when preprocessing linker scripts.
    arm, cris, mips, sparc, powerpc, um, xtensa: fix build with bash 4.0
    kbuild: add static to prototypes
    kbuild: fail build if recordmcount.pl fails
    kbuild: set -fconserve-stack option for gcc 4.5
    kbuild: echo the record_mcount command
    gconfig: disable "typeahead find" search in treeviews
    kbuild: fix cc1 options check to ensure we do not use -fPIC when compiling
    checkincludes.pl: add option to remove duplicates in place
    markup_oops: use modinfo to avoid confusion with underscored module names
    checkincludes.pl: provide usage helper
    checkincludes.pl: close file as soon as we're done with it
    ctags: usability fix
    kernel hacking: move STRIP_ASM_SYMS from General
    gitignore usr/initramfs_data.cpio.bz2 and usr/initramfs_data.cpio.lzma
    kbuild: Check if linker supports the -X option
    kbuild: introduce ld-option
    ...

    Fix trivial conflict in scripts/basic/fixdep.c

    Linus Torvalds
     

22 Sep, 2009

7 commits

  • This patch is largely a straightforward conversion. One thing to note
    is that the new macros use fewer separate output sections than the old
    code; this should have no functional impact but is relevant for people
    objdumping vmlinux files.

    Also note that it moves the .data.init_task output sections inside
    _edata.

    Signed-off-by: Tim Abbott
    Signed-off-by: Hirokazu Takata

    Tim Abbott
     
  • Since these get squashed into the .data output section by the m32r
    linker script, it seems likely that they don't need their own input
    sections.

    At Hirokazu Takata's suggestion, we place these structures in
    .init.data rather than just placing them in .data (since they are only
    used at init time).

    This patch is preparation for cleaning up the m32r architecture to use
    the new macros in vmlinux.lds.h; if these sections are indeed not
    needed, then we can use the RW_DATA_SECTION macro for m32r and save a
    bunch of redundant code.

    Signed-off-by: Tim Abbott
    Signed-off-by: Hirokazu Takata

    Tim Abbott
     
  • It appears that m32r copied the .altinstructions definition from x86
    when the architecture was first merged into Linux. m32r doesn't put
    anything in .altinstructions, so this is just dead code.

    The following block affecting .exit.text/.exit.data, which has a
    comment also copied from x86, should also be deleted; the linker
    script later discards the .exit.text and .exit.data sections.

    Signed-off-by: Tim Abbott
    Signed-off-by: Hirokazu Takata

    Tim Abbott
     
  • Previously, asm/thread_info.h was not usable from linker scripts
    because it contains a piece of .macro code. Since that code was only
    used in the m32r entry.S, the right fix is probably to move the macro
    there.

    Signed-off-by: Tim Abbott
    Signed-off-by: Hirokazu Takata

    Tim Abbott
     
  • Previously, m32r's asm/thread_info.h defined THREAD_SIZE differently
    for assembly and C code; now that PAGE_SIZE is usable from assembly,
    these can be combined. Also, m32r's asm/processor.h redefines
    THREAD_SIZE to the same value; remove this redundant definition.

    Signed-off-by: Tim Abbott
    Signed-off-by: Hirokazu Takata

    Tim Abbott
     
  • page.h includes ifndef __ASSEMBLY__ guards, but PAGE_SIZE is defined
    using "1UL", which the assembler does not support. Use the _AC macro
    from const.h to make it available to assembly (and linker scripts).

    Signed-off-by: Tim Abbott
    Signed-off-by: Hirokazu Takata

    Tim Abbott
     
  • Signed-off-by: Christoph Hellwig
    Cc: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig