1. 17 7月, 2007 1 次提交
  2. 12 6月, 2007 1 次提交
    • S
      kbuild: fix sh64 section mismatch problems · 2648a53a
      Sam Ravnborg 提交于
      There's a special .cranges section that is almost always generated,
      with data being moved to the appropriate section by the linker at a later
      stage.
      
      To give a bit of background, sh64 has both a native SHmedia instruction
      set (32-bit instructions) and SHcompact (which is compatability with
      normal SH -- 16-bit, a massively reduced register set, etc.). code ranges
      are emitted when we're using the 32-bit ABI, but not the 64-bit one.
      
      It is a special staging section used solely by binutils where code with
      different flags get placed (more specifically differing flags for input
      and output sections), before being lazily merged by the linker.
      
      The closest I've been able to find to documentation is:
        http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/emultempl/sh64elf.em?rev=1.10&content-type=text/x-cvsweb-markup&cvsroot=src
      
      It's an array of 8-byte Elf32_CRange structure given in
        http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/elf32-sh64.h?rev=1.4&content-type=text/x-cvsweb-markup&cvsroot=src
      that describes for which ISA a range is used.
      
      Silence the warnings by allowing references from .init.text to .cranges.
      
      The following warnings are fixed:
      
      WARNING: init/built-in.o(.cranges+0x0): Section mismatch: reference to .init.text:
      WARNING: init/built-in.o(.cranges+0xa): Section mismatch: reference to .init.text:
      WARNING: init/built-in.o(.cranges+0x14): Section mismatch: reference to .init.text:
      WARNING: init/built-in.o(.cranges+0x1e): Section mismatch: reference to .init.text:
      WARNING: init/built-in.o(.cranges+0x28): Section mismatch: reference to .init.text:
      WARNING: init/built-in.o(.cranges+0x32): Section mismatch: reference to .init.text:
      WARNING: kernel/built-in.o(.cranges+0x50): Section mismatch: reference to .init.text:
      WARNING: kernel/built-in.o(.cranges+0x5a): Section mismatch: reference to .init.text:
      WARNING: kernel/built-in.o(.cranges+0x64): Section mismatch: reference to .init.text:
      WARNING: kernel/built-in.o(.cranges+0xfa): Section mismatch: reference to .init.text:
      WARNING: kernel/built-in.o(.cranges+0x104): Section mismatch: reference to .init.text:
      WARNING: kernel/built-in.o(.cranges+0x10e): Section mismatch: reference to .init.text:
      WARNING: kernel/built-in.o(.cranges+0x14a): Section mismatch: reference to .init.text:
      WARNING: kernel/built-in.o(.cranges+0x154): Section mismatch: reference to .init.text:
      WARNING: kernel/built-in.o(.cranges+0x15e): Section mismatch: reference to .init.text:
      WARNING: mm/built-in.o(.cranges+0x6e): Section mismatch: reference to .init.text:
      WARNING: mm/built-in.o(.cranges+0x78): Section mismatch: reference to .init.text:
      WARNING: mm/built-in.o(.cranges+0x82): Section mismatch: reference to .init.text:
      WARNING: mm/built-in.o(.cranges+0xaa): Section mismatch: reference to .init.text:
      WARNING: fs/built-in.o(.cranges+0x136): Section mismatch: reference to .init.text:
      WARNING: fs/built-in.o(.cranges+0x140): Section mismatch: reference to .init.text:
      WARNING: fs/built-in.o(.cranges+0x14a): Section mismatch: reference to .init.text:
      WARNING: fs/built-in.o(.cranges+0x168): Section mismatch: reference to .init.text:
      WARNING: fs/built-in.o(.cranges+0x1f4): Section mismatch: reference to .init.text:
      WARNING: fs/built-in.o(.cranges+0x1fe): Section mismatch: reference to .init.text:
      WARNING: net/built-in.o(.cranges+0x302): Section mismatch: reference to .init.text:
      WARNING: net/built-in.o(.cranges+0x30c): Section mismatch: reference to .init.text:
      WARNING: net/built-in.o(.cranges+0x316): Section mismatch: reference to .init.text:
      WARNING: net/built-in.o(.cranges+0x3a2): Section mismatch: reference to .init.text:
      WARNING: net/built-in.o(.cranges+0x3ac): Section mismatch: reference to .init.text:
      WARNING: net/built-in.o(.cranges+0x4ce): Section mismatch: reference to .init.text:
      WARNING: net/built-in.o(.cranges+0x4d8): Section mismatch: reference to .init.text:
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      Cc: Kaz Kojima <kkojima@rr.iij4u.or.jp>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      2648a53a
  3. 22 5月, 2007 1 次提交
  4. 19 5月, 2007 8 次提交
  5. 10 5月, 2007 1 次提交
  6. 09 5月, 2007 1 次提交
    • Y
      Add white list into modpost.c for memory hotplug code and ia64's machvec section · 72280ede
      Yasunori Goto 提交于
      This patch is add white list into modpost.c for some functions and
      ia64's section to fix section mismatchs.
      
        sparse_index_alloc() and zone_wait_table_init() calls bootmem allocator
        at boot time, and kmalloc/vmalloc at hotplug time. If config
        memory hotplug is on, there are references of bootmem allocater(init text)
        from them (normal text). This is cause of section mismatch.
      
        Bootmem is called by many functions and it must be
        used only at boot time. I think __init of them should keep for
        section mismatch check. So, I would like to register sparse_index_alloc()
        and zone_wait_table_init() into white list.
      
        In addition, ia64's .machvec section is function table of some platform
        dependent code. It is mixture of .init.text and normal text. These
        reference of __init functions are valid too.
      Signed-off-by: NYasunori Goto <y-goto@jp.fujitsu.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      72280ede
  7. 08 5月, 2007 1 次提交
  8. 03 5月, 2007 11 次提交
  9. 21 2月, 2007 1 次提交
    • D
      [PATCH] remove modpost false warnings on ARM · da68d61f
      David Brownell 提交于
      This patch stops "modpost" from issuing erroneous modpost warnings on ARM
      builds, which it's been doing since since maybe last summer.  A canonical
      example would be driver method table entries:
      
        WARNING: <path> - Section mismatch: reference to .exit.text:<name>_remove
      	from .data after '$d' (at offset 0x4)
      
      That "$d" symbol is generated by tools conformant with ARM ABI specs; in
      this case it's a symbol **in the middle of** a "<name>_driver" struct.
      
      The erroneous warnings appear to be issued because "modpost" whitelists
      references from "<name>_driver" data into init and exit sections ...  but
      doesn't know should also include those "$d" mapping symbols, which are not
      otherwise associated with "<name>_driver" symbols.
      
      This patch prevents the modpost symbol lookup code from ever returning
      those mapping symbols, so it will return a whitelisted symbol instead.
      Then things work as expected.
      
      Now to revert various code-bloating "fixes" that got merged because of this
      modpost bug....
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Acked-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Acked-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      da68d61f
  10. 17 2月, 2007 2 次提交
  11. 13 2月, 2007 1 次提交
    • V
      [PATCH] i386: move startup_32() in text.head section · f8657e1b
      Vivek Goyal 提交于
      o Entry startup_32 was in .text section but it was accessing some init
        data too and it prompts MODPOST to generate compilation warnings.
      
      WARNING: vmlinux - Section mismatch: reference to .init.data:boot_params from
      .text between '_text' (at offset 0xc0100029) and 'startup_32_smp'
      WARNING: vmlinux - Section mismatch: reference to .init.data:boot_params from
      .text between '_text' (at offset 0xc0100037) and 'startup_32_smp'
      WARNING: vmlinux - Section mismatch: reference to
      .init.data:init_pg_tables_end from .text between '_text' (at offset
      0xc0100099) and 'startup_32_smp'
      
      o Can't move startup_32 to .init.text as this entry point has to be at the
        start of bzImage. Hence moved startup_32 to a new section .text.head and
        instructed MODPOST to not to generate warnings if init data is being
        accessed from .text.head section. This code has been audited.
      
      o SMP boot up code (startup_32_smp) can go into .init.text if CPU hotplug
        is not supported. Otherwise it generates more warnings
      
      WARNING: vmlinux - Section mismatch: reference to .init.data:new_cpu_data from
      .text between 'checkCPUtype' (at offset 0xc0100126) and 'is486'
      WARNING: vmlinux - Section mismatch: reference to .init.data:new_cpu_data from
      .text between 'checkCPUtype' (at offset 0xc0100130) and 'is486'
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      f8657e1b
  12. 09 2月, 2007 1 次提交
    • M
      [PATCH] PA-RISC: Fix bogus warnings from modpost · 742433b0
      Matthew Wilcox 提交于
      parisc and parisc64 seem to name sections a little differently from other
      targets.  parisc64 gives spurious warnings like:
      
      WARNING: drivers/net/dummy.o - Section mismatch: reference to .init.text:dummy_setup from .data.rel.ro between '.LC1' (at offset 0x0) and '.LC6'
      
      and parisc gives spurious warnings like:
      
      WARNING: drivers/net/dummy.o - Section mismatch: reference to .init.text:dummy_setup from .rodata.cst4 between '.LC1' (at offset 0x0) and '.LC6'
      
      Given the other comments in modpost.c, it seems that the best solution is
      to move rodata down to the 'match at start of name' section and add
      .data.rel.ro to the 'match entire name' section.
      
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      742433b0
  13. 11 1月, 2007 2 次提交
    • V
      [PATCH] x86-64: Modpost whitelist reference to more symbols (pattern 3) · ee6a8545
      Vivek Goyal 提交于
      o MODPOST generates warning on i386 if kernel is compiled with
        CONFIG_RELOCATABLE=y.
      
      WARNING: vmlinux - Section mismatch: reference to .init.text:__init_begin from .text between 'free_initmem' (at offset 0xc0114fd3) and 'do_test_wp_bit'
      WARNING: vmlinux - Section mismatch: reference to .init.text:_sinittext from .text between 'core_kernel_text' (at offset 0xc012aeae) and 'kernel_text_address'
      WARNING: vmlinux - Section mismatch: reference to .init.text:_einittext from .text between 'core_kernel_text' (at offset 0xc012aeb7) and 'kernel_text_address'
      WARNING: vmlinux - Section mismatch: reference to .init.text:_sinittext from .text between 'get_symbol_pos' (at offset 0xc0135776) and 'reset_iter'
      WARNING: vmlinux - Section mismatch: reference to .init.text:_einittext from .text between 'get_symbol_pos' (at offset 0xc013577d) and 'reset_iter'
      
      o These symbols (__init_begin, _sinittext, _einittext) belong to init
        section and generally represent a section boundary. These are special
        symbols in the sense that their size is zero and no memory is allocated
        for them in init section. Their addr and value are same. So even if
        we free the init section, it is ok to reference them.
      
      o Whitelist access to such select symbols in MODPOST.
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      ee6a8545
    • V
      [PATCH] x86-64: modpost add more symbols to whitelist pattern2 · 118c0ace
      Vivek Goyal 提交于
      o MODPOST generates warning for i386 if compiled with CONFIG_RELOCATABLE=y
        and serial console support is enabled.
      
      o Serial console setup function, serial8250_console_setup(), is a non __init
        function and it calls functions which are of type __init().
        (uart_parse_options() and uart_set_options()). Assuming, setup will
        be called during init time, changing serial8250_console_setup() to __init.
      
      o Adding one more pattern to modpost whitelist. Console drivers might
        have *_console structures containing references to setup functions which
        can be of __init type. Don't generate warnings for those.
      
      WARNING: vmlinux - Section mismatch: reference to .init.text: from .data between 'serial8250_console' (at offset 0xc05a33d8) and 'serial8250_reg'
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      118c0ace
  14. 14 12月, 2006 1 次提交
  15. 07 12月, 2006 1 次提交
    • R
      [PATCH] paravirt: Patch inline replacements for paravirt intercepts · 139ec7c4
      Rusty Russell 提交于
      It turns out that the most called ops, by several orders of magnitude,
      are the interrupt manipulation ops.  These are obvious candidates for
      patching, so mark them up and create infrastructure for it.
      
      The method used is that the ops structure has a patch function, which
      is called for each place which needs to be patched: this returns a
      number of instructions (the rest are NOP-padded).
      
      Usually we can spare a register (%eax) for the binary patched code to
      use, but in a couple of critical places in entry.S we can't: we make
      the clobbers explicit at the call site, and manually clobber the
      allowed registers in debug mode as an extra check.
      
      And:
      
      Don't abuse CONFIG_DEBUG_KERNEL, add CONFIG_DEBUG_PARAVIRT.
      
      And:
      
      AK:  Fix warnings in x86-64 alternative.c build
      
      And:
      
      AK: Fix compilation with defconfig
      
      And:
      
      ^From: Andrew Morton <akpm@osdl.org>
      
      Some binutlises still like to emit references to __stop_parainstructions and
      __start_parainstructions.
      
      And:
      
      AK: Fix warnings about unused variables when PARAVIRT is disabled.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NJeremy Fitzhardinge <jeremy@xensource.com>
      Signed-off-by: NChris Wright <chrisw@sous-sol.org>
      Signed-off-by: NZachary Amsden <zach@vmware.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      139ec7c4
  16. 25 10月, 2006 1 次提交
  17. 27 9月, 2006 1 次提交
    • M
      [PATCH] EISA bus MODALIAS attributes support · 07563c71
      Michael Tokarev 提交于
      Add modalias attribute support for the almost forgotten now EISA bus and
      (at least some) EISA-aware modules.
      
      The modalias entry looks like (for an 3c509 NIC):
      
       eisa:sTCM5093
      
      and the in-module alias like:
      
       eisa:sTCM5093*
      
      The patch moves struct eisa_device_id declaration from include/linux/eisa.h
      to include/linux/mod_devicetable.h (so that the former now #includes the
      latter), adds proper MODULE_DEVICE_TABLE(eisa, ...) statements for all
      drivers with EISA IDs I found (some drivers already have that DEVICE_TABLE
      declared), and adds recognision of __mod_eisa_device_table to
      scripts/mod/file2alias.c so that proper modules.alias will be generated.
      
      There's no support for /lib/modules/$kver/modules.eisamap, as it's not used
      by any existing tools, and because with in-kernel modalias mechanism those
      maps are obsolete anyway.
      
      The rationale for this patch is:
      
       a) to make EISA bus to act as other busses with modalias
          support, to unify driver loading
      
       b) to foget about EISA finally - with this patch, kernel
          (who still supports EISA) will be the only one who knows
          how to choose the necessary drivers for this bus ;)
      
      [akpm@osdl.org: fix the kbuild bit]
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Randy Dunlap <rdunlap@xenotime.net>
      Acked-the-net-bits-by: NJeff Garzik <jeff@garzik.org>
      Acked-the-tulip-bit-by: NValerie Henson <val_henson@linux.intel.com>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      07563c71
  18. 25 9月, 2006 3 次提交
  19. 20 9月, 2006 1 次提交
    • M
      [S390] zcrypt adjunct processor bus. · 1534c382
      Martin Schwidefsky 提交于
      Add a bus for the adjunct processor interface. Up to 64 devices can
      be connect to the ap bus interface, each device with 16 domains. That
      makes 1024 message queues. The interface is asynchronous, the answer
      to a message sent to a queue needs to be received at some later point
      in time. Unfortunately the interface does not provide interrupts when
      a message reply is pending. So the ap bus needs to implement some
      fancy polling, each active queue is polled once per 1/HZ second or
      continuously if an idle cpus exsists and the poll thread is activ
      (see poll_thread parameter).
      
      The ap bus uses the sysfs path /sys/bus/ap and has two bus attributes,
      ap_domain and config_time. The ap_domain selects one of the 16 domains
      to be used for this system. This limits the maximum number of ap devices
      to 64. The config_time attribute contains the number of seconds between
      two ap bus scans to find new devices.
      
      The ap bus uses the modalias entries of the form "ap:tN" to autoload
      the ap driver for hardware type N. Currently known types are:
      3 - PCICC, 4 - PCICA, 5 - PCIXCC, 6 - CEX2A and 7 - CEX2C.
      Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NRalph Wuerthner <rwuerthn@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      1534c382