04 Oct, 2006

1 commit


02 Oct, 2006

4 commits

  • This adds the new kernel_execve function on all architectures that were using
    _syscall3() to implement execve.

    The implementation uses code from the _syscall3 macros provided in the
    unistd.h header file. I don't have cross-compilers for any of these
    architectures, so the patch is untested with the exception of i386.

    Most architectures can probably implement this in a nicer way in assembly or
    by combining it with the sys_execve implementation itself, but this should do
    it for now.

    [bunk@stusta.de: m68knommu build fix]
    [markh@osdl.org: build fix]
    [bero@arklinux.org: build fix]
    [ralf@linux-mips.org: mips fix]
    [schwidefsky@de.ibm.com: s390 fix]
    Signed-off-by: Arnd Bergmann
    Cc: Andi Kleen
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Russell King
    Cc: Ian Molton
    Cc: Mikael Starvik
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: Hirokazu Takata
    Cc: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Richard Curnow
    Cc: William Lee Irwin III
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Cc: Miles Bader
    Cc: Chris Zankel
    Cc: "Luck, Tony"
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Signed-off-by: Ralf Baechle
    Signed-off-by: Bernhard Rosenkraenzer
    Signed-off-by: Mark Haverkamp
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     
  • Replace references to system_utsname to the per-process uts namespace
    where appropriate. This includes things like uname.

    Changes: Per Eric Biederman's comments, use the per-process uts namespace
    for ELF_PLATFORM, sunrpc, and parts of net/ipv4/ipconfig.c

    [jdike@addtoit.com: UML fix]
    [clg@fr.ibm.com: cleanup]
    [akpm@osdl.org: build fix]
    Signed-off-by: Serge E. Hallyn
    Cc: Kirill Korotaev
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Andrey Savochkin
    Signed-off-by: Cedric Le Goater
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • Move the init_nsproxy definition out of arch/ into kernel/nsproxy.c. This
    avoids all arches having to be updated. Compiles and boots on s390.

    Signed-off-by: Serge E. Hallyn
    Cc: Kirill Korotaev
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Andrey Savochkin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • This patch adds a nsproxy structure to the task struct. Later patches will
    move the fs namespace pointer into this structure, and introduce a new utsname
    namespace into the nsproxy.

    The vserver and openvz functionality, then, would be implemented in large part
    by virtualizing/isolating more and more resources into namespaces, each
    contained in the nsproxy.

    [akpm@osdl.org: build fix]
    Signed-off-by: Serge Hallyn
    Cc: Kirill Korotaev
    Cc: "Eric W. Biederman"
    Cc: Herbert Poetzl
    Cc: Andrey Savochkin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     

01 Oct, 2006

2 commits

  • Convert m32r to use generic ioremap_page_range()

    Signed-off-by: Haavard Skinnemoen
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     
  • With 2.6.18-rc4-mm2, now wall_jiffies will always be the same as jiffies.
    So we can kill wall_jiffies completely.

    This is just a cleanup and logically should not change any real behavior
    except for one thing: RTC updating code in (old) ppc and xtensa use a
    condition "jiffies - wall_jiffies == 1". This condition is never met so I
    suppose it is just a bug. I just remove that condition only instead of
    kill the whole "if" block.

    [heiko.carstens@de.ibm.com: s390 build fix and cleanup]
    Signed-off-by: Atsushi Nemoto
    Cc: Andi Kleen
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Russell King
    Cc: Ian Molton
    Cc: Mikael Starvik
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: Hirokazu Takata
    Cc: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Richard Curnow
    Cc: William Lee Irwin III
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Cc: Miles Bader
    Cc: Chris Zankel
    Cc: "Luck, Tony"
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Signed-off-by: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Atsushi Nemoto
     

30 Sep, 2006

2 commits

  • Pass ticks to do_timer() and update_times(), and adjust x86_64 and s390
    timer interrupt handler with this change.

    Currently update_times() calculates ticks by "jiffies - wall_jiffies", but
    callers of do_timer() should know how many ticks to update. Passing ticks
    get rid of this redundant calculation. Also there are another redundancy
    pointed out by Martin Schwidefsky.

    This cleanup make a barrier added by
    5aee405c662ca644980c184774277fc6d0769a84 needless. So this patch removes
    it.

    As a bonus, this cleanup make wall_jiffies can be removed easily, since now
    wall_jiffies is always synced with jiffies. (This patch does not really
    remove wall_jiffies. It would be another cleanup patch)

    Signed-off-by: Atsushi Nemoto
    Cc: Martin Schwidefsky
    Cc: "Eric W. Biederman"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: john stultz
    Cc: Andi Kleen
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Acked-by: Russell King
    Cc: Ian Molton
    Cc: Mikael Starvik
    Acked-by: David Howells
    Cc: Yoshinori Sato
    Cc: Hirokazu Takata
    Acked-by: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Richard Curnow
    Cc: William Lee Irwin III
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Cc: Miles Bader
    Cc: Chris Zankel
    Acked-by: "Luck, Tony"
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Atsushi Nemoto
     
  • This is an updated version of Eric Biederman's is_init() patch.
    (http://lkml.org/lkml/2006/2/6/280). It applies cleanly to 2.6.18-rc3 and
    replaces a few more instances of ->pid == 1 with is_init().

    Further, is_init() checks pid and thus removes dependency on Eric's other
    patches for now.

    Eric's original description:

    There are a lot of places in the kernel where we test for init
    because we give it special properties. Most significantly init
    must not die. This results in code all over the kernel test
    ->pid == 1.

    Introduce is_init to capture this case.

    With multiple pid spaces for all of the cases affected we are
    looking for only the first process on the system, not some other
    process that has pid == 1.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Sukadev Bhattiprolu
    Cc: Dave Hansen
    Cc: Serge Hallyn
    Cc: Cedric Le Goater
    Cc:
    Acked-by: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sukadev Bhattiprolu
     

26 Sep, 2006

1 commit


11 Jul, 2006

1 commit

  • screen_info.h doesn't have anything to do with the tty layer and shouldn't be
    included by tty.h. This patches removes the include and modifies all users to
    directly include screen_info.h. struct screen_info is mainly used to
    communicate with the console drivers in drivers/video/console. Note that this
    patch touches every arch and I have no way of testing it. If there is a
    mistake the worst thing that will happen is a compile error.

    [akpm@osdl.org: fix arm build]
    [akpm@osdl.org: fix alpha build]
    Signed-off-by: Jon Smirl
    Signed-off-by: Antonino Daplas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jon Smirl
     

03 Jul, 2006

1 commit


01 Jul, 2006

2 commits


30 Jun, 2006

1 commit

  • This patch-queue improves the generic IRQ layer to be truly generic, by adding
    various abstractions and features to it, without impacting existing
    functionality.

    While the queue can be best described as "fix and improve everything in the
    generic IRQ layer that we could think of", and thus it consists of many
    smaller features and lots of cleanups, the one feature that stands out most is
    the new 'irq chip' abstraction.

    The irq-chip abstraction is about describing and coding and IRQ controller
    driver by mapping its raw hardware capabilities [and quirks, if needed] in a
    straightforward way, without having to think about "IRQ flow"
    (level/edge/etc.) type of details.

    This stands in contrast with the current 'irq-type' model of genirq
    architectures, which 'mixes' raw hardware capabilities with 'flow' details.
    The patchset supports both types of irq controller designs at once, and
    converts i386 and x86_64 to the new irq-chip design.

    As a bonus side-effect of the irq-chip approach, chained interrupt controllers
    (master/slave PIC constructs, etc.) are now supported by design as well.

    The end result of this patchset intends to be simpler architecture-level code
    and more consolidation between architectures.

    We reused many bits of code and many concepts from Russell King's ARM IRQ
    layer, the merging of which was one of the motivations for this patchset.

    This patch:

    rename desc->handler to desc->chip.

    Originally i did not want to do this, because it's a big patch. But having
    both "desc->handler", "desc->handle_irq" and "action->handler" caused a
    large degree of confusion and made the code appear alot less clean than it
    truly is.

    I have also attempted a dual approach as well by introducing a
    desc->chip alias - but that just wasnt robust enough and broke
    frequently.

    So lets get over with this quickly. The conversion was done automatically
    via scripts and converts all the code in the kernel.

    This renaming patch is the first one amongst the patches, so that the
    remaining patches can stay flexible and can be merged and split up
    without having some big monolithic patch act as a merge barrier.

    [akpm@osdl.org: build fix]
    [akpm@osdl.org: another build fix]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

28 Jun, 2006

1 commit

  • With Goto-san's patch, we can add new pgdat/node at runtime. I'm now
    considering node-hot-add with cpu + memory on ACPI.

    I found acpi container, which describes node, could evaluate cpu before
    memory. This means cpu-hot-add occurs before memory hot add.

    In most part, cpu-hot-add doesn't depend on node hot add. But register_cpu(),
    which creates symbolic link from node to cpu, requires that node should be
    onlined before register_cpu(). When a node is onlined, its pgdat should be
    there.

    This patch-set holds off creating symbolic link from node to cpu
    until node is onlined.

    This removes node arguments from register_cpu().

    Now, register_cpu() requires 'struct node' as its argument. But the array of
    struct node is now unified in driver/base/node.c now (By Goto's node hotplug
    patch). We can get struct node in generic way. So, this argument is not
    necessary now.

    This patch also guarantees add cpu under node only when node is onlined. It
    is necessary for node-hot-add vs. cpu-hot-add patch following this.

    Moreover, register_cpu calculates cpu->node_id by cpu_to_node() without regard
    to its 'struct node *root' argument. This patch removes it.

    Also modify callers of register_cpu()/unregister_cpu, whose args are changed
    by register-cpu-remove-node-struct patch.

    [Brice.Goglin@ens-lyon.org: fix it]
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Yasunori Goto
    Cc: Ashok Raj
    Cc: Dave Hansen
    Signed-off-by: Brice Goglin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     

20 Apr, 2006

3 commits

  • - Remove unnecessary push/pop's of the switch_to() macro
    for performance tuning.
    - Cosmetic updates: change __inline__ to inline, etc.

    Signed-off-by: Hirokazu Takata
    Cc: NIIBE Yutaka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • Here is a patch to support a reboot function for M3A-2170(Mappi-III)
    evaluation board.

    Signed-off-by: Hayato Fujiwara
    Signed-off-by: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • This modification is required to fix debugging function for m32r targets
    with !CONFIG_ISA_DSP_LEVEL2, by unifying 'struct pt_regs' and 'struct
    sigcontext' size for all M32R ISA.

    Some m32r processor core with !CONFIG_ISA_DSP_LEVEL2 configuration has only
    single accumulator a0 (ex. VDEC2 core, M32102 core, etc.), the others with
    CONFIG_ISA_DSP_LEVEL2 has two accumulators, a0 and a1.

    This means there are two variations of thread context. So far, we reduced
    and changed stackframe size at a syscall for their context size. However,
    this causes a problem that a GDB for processors with CONFIG_ISA_DSP_LEVEL2
    cannot be used for processors with !CONFIG_ISA_DSP_LEVEL2.

    From the viewpoint of GDB support, we should reduce such variation of
    stackframe size for simplicity.

    In this patch, dummy members are added to 'struct pt_regs' and 'struct
    sigcontext' to adjust their size for !CONFIG_ISA_DSP_LEVEL2.

    This modification is also a one step for a GDB update in future.
    Currently, on the m32r, GDB can access process's context by using ptrace
    functions in a simple way of register by register access. By unifying
    stackframe size, we have a possibility to make use of ptrace functions of
    not only a single register access but also block register access,
    PTRACE_{GETREGS,PUTREGS}.

    However, for this purpose, we might have to modify stackframe structure
    some more; for example, PSW (processor status word) register should be
    pre-processed before pushing to stack at a syscall, and so on. In this
    case, we must update carefully both kernel and GDB at a time...

    Signed-off-by: Hayato Fujiwara
    Signed-off-by: Hirokazu Takata
    Cc: Kei Sakamoto
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     

11 Apr, 2006

5 commits

  • While cleaning up parisc_ksyms.c earlier, I noticed that strpbrk wasn't
    being exported from lib/string.c. Investigating further, I noticed a
    changeset that removed its export and added it to _ksyms.c on a few more
    architectures. The justification was that "other arches do it."

    I think this is wrong, since no architecture currently defines
    __HAVE_ARCH_STRPBRK, there's no reason for any of them to be exporting it
    themselves. Therefore, consolidate the export to lib/string.c.

    Signed-off-by: Kyle McMartin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kyle McMartin
     
  • Current implementations define NODES_SHIFT in include/asm-xxx/numnodes.h for
    each arch. Its definition is sometimes configurable. Indeed, ia64 defines 5
    NODES_SHIFT values in the current git tree. But it looks a bit messy.

    SGI-SN2(ia64) system requires 1024 nodes, and the number of nodes already has
    been changeable by config. Suitable node's number may be changed in the
    future even if it is other architecture. So, I wrote configurable node's
    number.

    This patch set defines just default value for each arch which needs multi
    nodes except ia64. But, it is easy to change to configurable if necessary.

    On ia64 the number of nodes can be already configured in generic ia64 and SN2
    config. But, NODES_SHIFT is defined for DIG64 and HP'S machine too. So, I
    changed it so that all platforms can be configured via CONFIG_NODES_SHIFT. It
    would be simpler.

    See also: http://marc.theaimsgroup.com/?l=linux-kernel&m=114358010523896&w=2

    Signed-off-by: Yasunori Goto
    Cc: Hirokazu Takata
    Cc: "Luck, Tony"
    Cc: Andi Kleen
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Ivan Kokshaysky
    Cc: Richard Henderson
    Cc: Kyle McMartin
    Cc: Russell King
    Cc: Ralf Baechle
    Cc: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • Remove multi-exported symbols from arch/m32r/kernel/m32r_ksyms.c.

    WARNING: vmlinux: 'enable_irq' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'disable_irq' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'disable_irq_nosync' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'synchronize_irq' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'memchr' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'strstr' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'memscan' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'memcmp' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'memmove' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'strnlen' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'strchr' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'strncmp' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'strcmp' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'strncat' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'strcat' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'strncpy' exported twice. Previous export was in vmlinux
    WARNING: vmlinux: 'strcpy' exported twice. Previous export was in vmlinux

    Signed-off-by: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • Update {get,put}_user macros for m32r kernel.
    - Modify get_user to use __get_user_asm macro, instead of __get_user_x macro.
    - Remove arch/m32r/lib/{get,put}user.S.
    - Some cosmetic updates.

    I would like to thank NIIBE Yutaka for his reporting about the m32r kernel's
    security problem in {get,put}_user macros.

    There were no address checking for user space access in {get,put}_user macros.
    ;-)

    Signed-off-by: Hirokazu Takata
    Cc: NIIBE Yutaka
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • This patch fixes a boot problem of the m32r SMP kernel 2.6.16-rc1-mm3 or
    later.

    In this patch, cpu_possible_map is statically initialized, and cpu_present_map
    is also copied from cpu_possible_map in smp_prepare_cpus(), because the m32r
    architecture has not supported CPU hotplug yet.

    Signed-off-by: Hayato Fujiwara
    Signed-off-by: Hirokazu Takata
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     

28 Mar, 2006

3 commits

  • Just about every architecture defines some macros to do operations on pfns.
    They're all virtually identical. This patch consolidates all of them.

    One minor glitch is that at least i386 uses them in a very skeletal header
    file. To keep away from #include dependency hell, I stuck the new
    definitions in a new, isolated header.

    Of all of the implementations, sh64 is the only one that varied by a bit.
    It used some masks to ensure that any sign-extension got ripped away before
    the arithmetic is done. This has been posted to that sh64 maintainers and
    the development list.

    Compiles on x86, x86_64, ia64 and ppc64.

    Signed-off-by: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Hansen
     
  • Because pgdat_list was linked to pgdat_list in *reverse* order, (By default)
    some of arch has to sort it by themselves.

    for_each_pgdat has gone..for_each_online_pgdat() uses node_online_map, which
    doesn't need to be sorted.

    This patch removes codes for sorting pgdat.

    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Replace for_each_pgdat() with for_each_online_pgdat().

    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     

27 Mar, 2006

1 commit

  • - remove __{,test_and_}{set,clear,change}_bit() and test_bit()
    - remove ffz()
    - remove find_{next,first}{,_zero}_bit()
    - remove __ffs()
    - remove generic_fls()
    - remove generic_fls64()
    - remove sched_find_first_bit()
    - remove generic_ffs()
    - remove generic_hweight{32,16,8}()
    - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()
    - remove ext2_{set,clear}_bit_atomic()
    - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit()

    Signed-off-by: Akinobu Mita
    Cc: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

26 Mar, 2006

2 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild: (46 commits)
    kbuild: remove obsoleted scripts/reference_* files
    kbuild: fix make help & make *pkg
    kconfig: fix time ordering of writes to .kconfig.d and include/linux/autoconf.h
    Kconfig: remove the CONFIG_CC_ALIGN_* options
    kbuild: add -fverbose-asm to i386 Makefile
    kbuild: clean-up genksyms
    kbuild: Lindent genksyms.c
    kbuild: fix genksyms build error
    kbuild: in makefile.txt note that Makefile is preferred name for kbuild files
    kbuild: replace PHONY with FORCE
    kbuild: Fix bug in crc symbol generating of kernel and modules
    kbuild: change kbuild to not rely on incorrect GNU make behavior
    kbuild: when warning symbols exported twice now tell user this is the problem
    kbuild: fix make dir/file.xx when asm symlink is missing
    kbuild: in the section mismatch check try harder to find symbols
    kbuild: fix section mismatch check for unwind on IA64
    kbuild: kill false positives from section mismatch warnings for powerpc
    kbuild: kill trailing whitespace in modpost & friends
    kbuild: small update of allnoconfig description
    kbuild: make namespace.pl CROSS_COMPILE happy
    ...

    Trivial conflict in arch/ppc/boot/Makefile manually fixed up

    Linus Torvalds
     
  • The Kconfig text for CONFIG_DEBUG_SLAB and CONFIG_DEBUG_PAGEALLOC have always
    seemed a bit confusing. Change them to:

    CONFIG_DEBUG_SLAB: "Debug slab memory allocations"
    CONFIG_DEBUG_PAGEALLOC: "Debug page memory allocations"

    Cc: "David S. Miller"
    Cc: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

23 Mar, 2006

1 commit

  • When we stop allocating percpu memory for not-possible CPUs we must not touch
    the percpu data for not-possible CPUs at all. The correct way of doing this
    is to test cpu_possible() or to use for_each_cpu().

    This patch is a kernel-wide sweep of all instances of NR_CPUS. I found very
    few instances of this bug, if any. But the patch converts lots of open-coded
    test to use the preferred helper macros.

    Cc: Mikael Starvik
    Cc: David Howells
    Acked-by: Kyle McMartin
    Cc: Anton Blanchard
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Paul Mundt
    Cc: "David S. Miller"
    Cc: William Lee Irwin III
    Cc: Andi Kleen
    Cc: Christian Zankel
    Cc: Philippe Elie
    Cc: Nathan Scott
    Cc: Jens Axboe
    Cc: Eric Dumazet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

22 Mar, 2006

1 commit

  • set_page_count usage outside mm/ is limited to setting the refcount to 1.
    Remove set_page_count from outside mm/, and replace those users with
    init_page_count() and set_page_refcounted().

    This allows more debug checking, and tighter control on how code is allowed
    to play around with page->_count.

    Signed-off-by: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     

06 Mar, 2006

1 commit

  • The kbuild system takes advantage of an incorrect behavior in GNU make.
    Once this behavior is fixed, all files in the kernel rebuild every time,
    even if nothing has changed. This patch ensures kbuild works with both
    the incorrect and correct behaviors of GNU make.

    For more details on the incorrect behavior, see:

    http://lists.gnu.org/archive/html/bug-make/2006-03/msg00003.html

    Changes in this patch:
    - Keep all targets that are to be marked .PHONY in a variable, PHONY.
    - Add .PHONY: $(PHONY) to mark them properly.
    - Remove any $(PHONY) files from the $? list when determining whether
    targets are up-to-date or not.

    Signed-off-by: Paul Smith
    Signed-off-by: Sam Ravnborg

    Paul Smith
     

25 Feb, 2006

2 commits

  • Fix and update for gcc-4.0.

    - arch/m32r/kernel/signal.c:
    Change type of the 8th parameter of sys_rt_sigsuspend() from
    'struct pt_regs' to 'struct pt_regs *'.
    This functions make use of the 'regs' parameter to return status value,
    but gcc-4.0 optimizes and removes it as a dead code.
    Functions, sys_sigaltstack() and sys_rt_sigreturn(), have also modified.

    - arch/m32r/lib/usercopy.c, include/asm-m32r/uaccess.h:
    Add early-clobber constraints('&') to output values of asm statements;
    these constraints seems to be required for gcc-4.0 register assignment.

    Signed-off-by: Hayato Fujiwara
    Signed-off-by: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • Add -O2 option to AFLAGS to enable asm code optimization for m32r.

    On m32r gas, "-m32r2 -O" option enables assembler's parallel code
    generation optimization for M32R2 ISA as a default. So, "-no-parallel"
    option is required explicitly for a cpu core with single instuction
    issuing, for example, VDEC2.

    Signed-off-by: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     

21 Feb, 2006

1 commit

  • This patch updates and fixes sys_tas() routine for m32r.

    In the previous implementation, a lockup rarely caused at sys_tas()
    routine in SMP environment.

    > > The problem is that touching *addr will generate an oops if that page isn't
    > > paged in. If we convert it to use get_user() then that's an improvement,
    > > but we must not run get_user() under spinlock or local_irq_disable().

    I rewrote sys_tas() routine by using "lock -> unlock" instructions, and
    utilizing the m32r's interrupt handling characteristics; the m32r processor
    can accept interrupts only at the 32-bit instruction boundary. So, the
    "unlock" instruction can be executed continuously after the "lock"
    instruction execution without any interruptions.

    In addition, to solve such a page_fault problem, I use a fixup code like
    get_user().

    And, as for the kernel lockup problem, we found that a calling
    do_page_fault() routine with disabling interrupts might cause a lockup at
    flush_tlb_others(), because we checked a completion of IPI handler's
    operations in a spin-locked critical section.

    Therefore, by using "lock -> unlock" code, we can implement the sys_tas()
    rouitine without disabling interrupts explicitly, then no lockups would
    happen at flush_tlb_others(), I hope.

    Compile check and some working test in SMP environment have done.

    Signed-off-by: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     

08 Feb, 2006

1 commit


13 Jan, 2006

1 commit


11 Jan, 2006

2 commits

  • )

    From: Adrian Bunk

    - create one common dump_thread() prototype in kernel.h

    - dump_thread() is only used in fs/binfmt_aout.c and can therefore be
    removed on all architectures where CONFIG_BINFMT_AOUT is not
    available

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    akpm@osdl.org
     
  • It seems the "make UID16 support optional" patch was checked when it
    edited the -tiny tree some time ago, but it wasn't checked whether it
    still matches the current situation when it was submitted for inclusion
    in -mm. This patch fixes the following bugs:
    - ARCH_S390X does no longer exist, nowadays this has to be expressed
    through (S390 && 64BIT)
    - in five architecture specific Kconfig files the UID16 options
    weren't removed

    Additionally, it changes the fragile negative dependencies of UID16 to
    positive dependencies (new architectures are more likely to not require
    UID16 support).

    Signed-off-by: Adrian Bunk
    Acked-by: Matt Mackall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk