1. 19 1月, 2007 1 次提交
  2. 12 1月, 2007 1 次提交
    • G
      [PATCH] Change cpu_up and co from __devinit to __cpuinit · b282b6f8
      Gautham R Shenoy 提交于
      Compiling the kernel with CONFIG_HOTPLUG = y and CONFIG_HOTPLUG_CPU = n
      with CONFIG_RELOCATABLE = y generates the following modpost warnings
      
      WARNING: vmlinux - Section mismatch: reference to .init.data: from
      .text between '_cpu_up' (at offset 0xc0141b7d) and 'cpu_up'
      WARNING: vmlinux - Section mismatch: reference to .init.data: from
      .text between '_cpu_up' (at offset 0xc0141b9c) and 'cpu_up'
      WARNING: vmlinux - Section mismatch: reference to .init.text:__cpu_up
      from .text between '_cpu_up' (at offset 0xc0141bd8) and 'cpu_up'
      WARNING: vmlinux - Section mismatch: reference to .init.data: from
      .text between '_cpu_up' (at offset 0xc0141c05) and 'cpu_up'
      WARNING: vmlinux - Section mismatch: reference to .init.data: from
      .text between '_cpu_up' (at offset 0xc0141c26) and 'cpu_up'
      WARNING: vmlinux - Section mismatch: reference to .init.data: from
      .text between '_cpu_up' (at offset 0xc0141c37) and 'cpu_up'
      
      This is because cpu_up, _cpu_up and __cpu_up (in some architectures) are
      defined as __devinit
      AND
      __cpu_up calls some __cpuinit functions.
      
      Since __cpuinit would map to __init with this kind of a configuration,
      we get a .text refering .init.data warning.
      
      This patch solves the problem by converting all of __cpu_up, _cpu_up
      and cpu_up from __devinit to __cpuinit. The approach is justified since
      the callers of cpu_up are either dependent on CONFIG_HOTPLUG_CPU or
      are of __init type.
      
      Thus when CONFIG_HOTPLUG_CPU=y, all these cpu up functions would land up
      in .text section, and when CONFIG_HOTPLUG_CPU=n, all these functions would
      land up in .init section.
      
      Tested on a i386 SMP machine running linux-2.6.20-rc3-mm1.
      Signed-off-by: NGautham R Shenoy <ego@in.ibm.com>
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b282b6f8
  3. 11 1月, 2007 3 次提交
    • A
      [MIPS] Alchemy: Fix PCI-memory access · 8a93c496
      Alexander Bigga 提交于
          
          The problem was introduced in 2.6.18.3 with the casting of some
          36bit-defines (PCI memory) in au1000.h to resource_size_t which may be
          u32 or u64 depending on the experimental CONFIG_RESOURCES_64BIT.
          
          With unset CONFIG_RESOURCES_64BIT, the pci-memory cannot be accessed
          because the ioremap in arch/mips/au1000/common/pci.c already used the
          truncated addresses.
          With set CONFIG_RESOURCES_64BIT, things get even worse, because PCI-scan
          aborts, due to resource conflict: request_resource() in arch/mips/pci/pci.c
          fails because the maximum iomem-address is 0xffffffff (32bit) but the
          pci-memory-start-address is 0x440000000 (36bit).
          
          To get pci working again, I propose the following patch:
          
          1. remove the resource_size_t-casting from au1000.h again
          2. make the casting in arch/mips/au1000/common/pci.c (it's allowed and
          necessary here. The 36bit-handling will be done in __fixup_bigphys_addr).
          
          With this patch pci works again like in 2.6.18.2, the gcc-compile warnings
          in pci.c are gone and it doesn't depend on CONFIG_EXPERIMENTAL.
      Signed-off-by: NAlexander Bigga <ab@mycable.de>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      
      ---
      8a93c496
    • A
      [MIPS] Fix N32 SysV IPC routines · e16d8df0
      Atsushi Nemoto 提交于
      Add wrappers for N32 msg{snd,rcv}.  compat_sys_msg{snd,rcv} can not not be
      used as system call entries as is.  This fix is based on Kaz Kylheku's
      patch.
      
      Also change a type of last argument of sysn32_semctl to match its true
      size.
      Signed-off-by: NAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e16d8df0
    • A
      6b4cd275
  4. 09 1月, 2007 6 次提交
  5. 14 12月, 2006 2 次提交
    • A
      [PATCH] MIPS: Fix COW D-cache aliasing on fork · bcd02280
      Atsushi Nemoto 提交于
      Provide a custom copy_user_highpage() to deal with aliasing issues on
      MIPS.  It uses kmap_coherent() to map an user page for kernel with same
      color.  Rewrite copy_to_user_page() and copy_from_user_page() with the
      new interfaces to avoid extra cache flushing.
      
      The main part of this patch was originally written by Ralf Baechle;
      Atushi Nemoto did the the debugging.
      Signed-off-by: NAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bcd02280
    • R
      [PATCH] getting rid of all casts of k[cmz]alloc() calls · 5cbded58
      Robert P. J. Day 提交于
      Run this:
      
      	#!/bin/sh
      	for f in $(grep -Erl "\([^\)]*\) *k[cmz]alloc" *) ; do
      	  echo "De-casting $f..."
      	  perl -pi -e "s/ ?= ?\([^\)]*\) *(k[cmz]alloc) *\(/ = \1\(/" $f
      	done
      
      And then go through and reinstate those cases where code is casting pointers
      to non-pointers.
      
      And then drop a few hunks which conflicted with outstanding work.
      
      Cc: Russell King <rmk@arm.linux.org.uk>, Ian Molton <spyro@f2s.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Cc: Paul Fulghum <paulkf@microgate.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Karsten Keil <kkeil@suse.de>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Cc: Ian Kent <raven@themaw.net>
      Cc: Steven French <sfrench@us.ibm.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Neil Brown <neilb@cse.unsw.edu.au>
      Cc: Jaroslav Kysela <perex@suse.cz>
      Cc: Takashi Iwai <tiwai@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5cbded58
  6. 12 12月, 2006 3 次提交
    • F
      [MIPS] paging_init(): use highend_pfn/highstart_pfn · cbb8fc07
      Franck Bui-Huu 提交于
      This patch makes paging_init() use highend_pfn/highstart_pfn globals.
      
      It removes the need of 'high' local which was needed only by HIGHMEM config.
      
      More important perhaps, it fixes a bug when HIGHMEM is set but there's
      actually no physical highmem (highend_pfn = 0)
      Signed-off-by: NFranck Bui-Huu <fbuihuu@gmail.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      cbb8fc07
    • R
      b228f4c5
    • R
      [MIPS] Discard .exit.text and .exit.data at runtime. · 2efac77e
      Ralf Baechle 提交于
      While the recent cset 86384d54 did improve
      things it didn't resolve all the problems.  So bite the bullet and discard
      .exit.text and .exit.data at runtime.  Which of course sucks because it
      bloats binaries with code that will never ever be used but it's the only
      thing that will work reliable as demonstrated by the function sd_major() in
      drivers/scsi/sd.c.
      
      Gcc may compile sd_major() using a jump table which it will put into
      .rodata.  If it also inlines sd_major's function body into exit_sd() which
      gcc > 3.4.x does.  If CONFIG_BLK_DEV_SD has been set to y we would like ld
      to discard exit_sd's code at link time.  However sd_major happens to
      contain a switch statement which gcc will compile using a jump table in
      .rodata on the architectures I checked.  So, when ld later discards
      .exit.text only the jump table in .rodata with its stale references to
      the discard .exit.text will be left which any no antique ld will honor
      with a link error.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      2efac77e
  7. 11 12月, 2006 6 次提交
  8. 09 12月, 2006 11 次提交
  9. 08 12月, 2006 5 次提交
  10. 07 12月, 2006 2 次提交