1. 23 5月, 2012 2 次提交
  2. 01 5月, 2012 2 次提交
  3. 19 4月, 2012 1 次提交
    • D
      Fix modpost failures in fedora 17 · e88aa7bb
      David Miller 提交于
      The symbol table on x86-64 starts to have entries that have names
      like:
      
      _GLOBAL__sub_I_65535_0___mod_x86cpu_device_table
      
      They are of type STT_FUNCTION and this one had a length of 18.  This
      matched the device ID validation logic and it barfed because the
      length did not meet the device type's criteria.
      
      --------------------
      FATAL: arch/x86/crypto/aesni-intel: sizeof(struct x86cpu_device_id)=16 is not a modulo of the size of section __mod_x86cpu_device_table=18.
      Fix definition of struct x86cpu_device_id in mod_devicetable.h
      --------------------
      
      These are some kind of compiler tool internal stuff being emitted and
      not something we want to inspect in modpost's device ID table
      validation code.
      
      So skip the symbol if it is not of type STT_OBJECT.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      e88aa7bb
  4. 16 4月, 2012 1 次提交
  5. 10 4月, 2012 1 次提交
    • F
      modpost: Fix modpost license checking of vmlinux.o · 258f7426
      Frank Rowand 提交于
      Commit f02e8a65 ("module: Sort exported symbols") sorts symbols
      placing each of them in its own elf section.  This sorting and merging
      into the canonical sections are done by the linker.
      
      Unfortunately modpost to generate Module.symvers file parses vmlinux.o
      (which is not linked yet) and all modules object files (which aren't
      linked yet).  These aren't sanitized by the linker yet.  That breaks
      modpost that can't detect license properly for modules.
      
      This patch makes modpost aware of the new exported symbols structure.
      
      [ This above is a slightly corrected version of the explanation of the
        problem, copied from commit 62a26356 ("modpost: Fix modpost's
        license checking V3").  That commit fixed the problem for module
        object files, but not for vmlinux.o.  This patch fixes modpost for
        vmlinux.o. ]
      Signed-off-by: NFrank Rowand <frank.rowand@am.sony.com>
      Signed-off-by: NAlessio Igor Bogani <abogani@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      258f7426
  6. 27 3月, 2012 1 次提交
  7. 27 2月, 2012 1 次提交
  8. 15 2月, 2012 1 次提交
  9. 14 2月, 2012 2 次提交
  10. 27 1月, 2012 1 次提交
    • A
      Add driver auto probing for x86 features v4 · 644e9cbb
      Andi Kleen 提交于
      There's a growing number of drivers that support a specific x86 feature
      or CPU.  Currently loading these drivers currently on a generic
      distribution requires various driver specific hacks and it often
      doesn't work.
      
      This patch adds auto probing for drivers based on the x86 cpuid
      information, in particular based on vendor/family/model number
      and also based on CPUID feature bits.
      
      For example a common issue is not loading the SSE 4.2 accelerated
      CRC module: this can significantly lower the performance of BTRFS
      which relies on fast CRC.
      
      Another issue is loading the right CPUFREQ driver for the current CPU.
      Currently distributions often try all all possible driver until
      one sticks, which is not really a good way to do this.
      
      It works with existing udev without any changes. The code
      exports the x86 information as a generic string in sysfs
      that can be matched by udev's pattern matching.
      
      This scheme does not support numeric ranges, so if you want to
      handle e.g. ranges of model numbers they have to be encoded
      in ASCII or simply all models or families listed. Fixing
      that would require changing udev.
      
      Another issue is that udev will happily load all drivers that match,
      there is currently no nice way to stop a specific driver from
      being loaded if it's not needed (e.g. if you don't need fast CRC)
      But there are not that many cpu specific drivers around and they're
      all not that bloated, so this isn't a particularly serious issue.
      
      Originally this patch added the modalias to the normal cpu
      sysdevs. However sysdevs don't have all the infrastructure
      needed for udev, so it couldn't really autoload drivers.
      This patch instead adds the CPU modaliases to the cpuid devices,
      which are real devices with full support for udev. This implies
      that the cpuid driver has to be loaded to use this.
      
      This patch just adds infrastructure, some driver conversions
      in followups.
      
      Thanks to Kay for helping with some sysfs magic.
      
      v2: Constifcation, some updates
      v4: (trenn@suse.de):
          - Use kzalloc instead of kmalloc to terminate modalias buffer
          - Use uppercase hex values to match correctly against hex values containing
            letters
      
      Cc: Dave Jones <davej@redhat.com>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Jen Axboe <axboe@kernel.dk>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Huang Ying <ying.huang@intel.com>
      Cc: Len Brown <lenb@kernel.org>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NThomas Renninger <trenn@suse.de>
      Acked-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      644e9cbb
  11. 21 1月, 2012 1 次提交
    • R
      Revert "ARM: sa11x0: Implement autoloading of codec and codec pdata for mcp bus." · 65f2e753
      Russell King 提交于
      This reverts commit 5dd7bf59.
      
      Conflicts:
      
      	scripts/mod/file2alias.c
      
      This change is wrong on many levels.  First and foremost, it causes a
      regression.  On boot on Assabet, which this patch gives a codec id of
      'ucb1x00', it gives:
      
      	ucb1x00 ID not found: 1005
      
      0x1005 is a valid ID for the UCB1300 device.
      
      Secondly, this patch is way over the top in terms of complexity.  The
      only device which has been seen to be connected with this MCP code is
      the UCB1x00 (UCB1200, UCB1300 etc) devices, and they all use the same
      driver.  Adding a match table, requiring the codec string to match the
      hardware ID read out of the ID register, etc is completely over the top
      when we can just read the hardware ID register.
      65f2e753
  12. 13 1月, 2012 2 次提交
  13. 09 1月, 2012 1 次提交
  14. 22 11月, 2011 1 次提交
    • D
      ARM: amba: Auto-generate AMBA driver module aliases during modpost · 523817bd
      Dave Martin 提交于
      This patch adds the necessary support in file2alias.c to define
      suitable aliases based on the amba_id table in AMBA driver modules.
      
      This should be sufficient to allow such modules to be auto-loaded
      via udev.  The AMBA bus driver's uevent hotplug code is also
      modified to pass an approriate MODALIAS string in the event.
      
      For simplicity, the AMBA ID is treated an an opaque 32-bit numeber.
      Module alises use patterns as appropriate to describe the value-
      mask pairs described in the driver's amba_id list.
      
      The proposed alias format is (extended regex):
      
          ^amba:d(HEX){8}$
      
      Where HEX is a single upper-case HEX digit or a pattern (? or []
      expression) matching a single upper-case HEX digit, as expected by
      udev.
      
      "d" is short for "device", following existing alias naming
      conventions for other device types.  This adds some flexibility for
      unambiguously extending the alias format in the future by adding
      additional leading and trailing fields, if this turns out to be
      necessary.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Acked-by: NPawel Moll <pawel.moll@arm.com>
      523817bd
  15. 07 11月, 2011 1 次提交
  16. 26 8月, 2011 2 次提交
  17. 24 7月, 2011 1 次提交
    • A
      modpost: Fix modpost's license checking V3 · 62a26356
      Alessio Igor Bogani 提交于
      The commit f02e8a65 sorts symbols placing each of them in its own elf section.
      The sorting and merging into the canonical sections are done by the linker.
      Unfortunately modpost to generate Module.symvers file parses vmlinux
      (already linked) and all modules object files (which aren't linked yet).
      These aren't sanitized by the linker yet. That breaks modpost that can't
      detect license properly for modules. This patch makes modpost aware of
      the new exported symbols structure.
      
      Thanks to Arnaud Lacombe <lacombar@gmail.com> and Anders Kaseorg
      <andersk@ksplice.com> for providing useful suggestions about code.
      
      This work was supported by a hardware donation from the CE Linux Forum.
      Reported-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NAlessio Igor Bogani <abogani@kernel.org>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      62a26356
  18. 19 5月, 2011 1 次提交
  19. 11 5月, 2011 1 次提交
    • R
      bcma: add Broadcom specific AMBA bus driver · 8369ae33
      Rafał Miłecki 提交于
      Broadcom has released cards based on a new AMBA-based bus type. From a
      programming point of view, this new bus type differs from AMBA and does
      not use AMBA common registers. It also differs enough from SSB. We
      decided that a new bus driver is needed to keep the code clean.
      
      In its current form, the driver detects devices present on the bus and
      registers them in the system. It allows registering BCMA drivers for
      specified bus devices and provides them basic operations. The bus driver
      itself includes two important bus managing drivers: ChipCommon core
      driver and PCI(c) core driver. They are early used to allow correct
      initialization.
      
      Currently code is limited to supporting buses on PCI(e) devices, however
      the driver is designed to be used also on other hosts. The host
      abstraction layer is implemented and already used for PCI(e).
      
      Support for PCI(e) hosts is working and seems to be stable (access to
      80211 core was tested successfully on a few devices). We can still
      optimize it by using some fixed windows, but this can be done later
      without affecting any external code. Windows are just ranges in MMIO
      used for accessing cores on the bus.
      
      Cc: Greg KH <greg@kroah.com>
      Cc: Michael Büsch <mb@bu3sch.de>
      Cc: Larry Finger <Larry.Finger@lwfinger.net>
      Cc: George Kashperko <george@znau.edu.ua>
      Cc: Arend van Spriel <arend@broadcom.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Andy Botting <andy@andybotting.com>
      Cc: linuxdriverproject <devel@linuxdriverproject.org>
      Cc: linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>
      Signed-off-by: NRafał Miłecki <zajec5@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8369ae33
  20. 17 3月, 2011 1 次提交
    • R
      modpost: fix trailing comma · 00759c0e
      Randy Dunlap 提交于
      Consolidate locations that print a section whitelist into
      calls to print_section_list().
      
      Fix print_section_list() so that it does not print a trailing
      comma & space:
      
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
      
      becomes:
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      00759c0e
  21. 14 3月, 2011 1 次提交
  22. 28 12月, 2010 1 次提交
    • O
      modpost: Fix address calculation in reloc_location() · 731ece41
      Olof Johansson 提交于
      This patch fixes a segfault in modpost that is observed when the gold
      linker is used to link the input objects.
      
      The problem is that reloc_location (modpost.c) is computing the
      address of the relocation target incorrectly. Here, elf->hdr points
      to the beginning of the ELF file in memory, sechdr points to the
      relocation section header, section is the index of the section
      being relocated, and sechdrs[section].sh_offset would be the offset
      of that section, relative to the beginning of the ELF file. Adding
      elf->hdr + sechdrs[section].sh_offset gives you the address of the
      beginning of the section, and adding r->r_offset to that gives you the
      address of the location to be relocated. You do not need to subtract
      sechdrs[section].sh_addr from that -- the result of this is an address
      outside the file, and causes the segfault when addend_386_rel tries to
      dereference it.
      
      This bug is not observed when GNU ld is used to link the inputs. The
      object file ubuntu/omnibook/omnibook.o is the result of an ld -r of
      several other files.  When GNU ld does an ld -r, it sets the vaddr
      field for each section to 0, but gold lays out the section addresses
      sequentially instead:
      
      Section Headers:
       [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
       [ 0]                   NULL            00000000 000000 000000 00      0   0  0
       [ 1] .text             PROGBITS        00000000 000034 004794 00  AX  0   0  4
       [ 2] .data             PROGBITS        0000b9d0 0047c8 0009c0 00  WA  0   0  4
       [ 3] .bss              NOBITS          000162f8 005188 00013c 00  WA  0   0  4
       [ 4] .rodata.str1.1    PROGBITS        00004f2d 0052c4 001b1a 01 AMS  0   0  1
       [ 5] .init.text        PROGBITS        00004794 006dde 0005fa 00  AX  0   0  1
       [ 6] .exit.text        PROGBITS        00004d8e 0073d8 00018a 00  AX  0   0  1
        ...
      
      So the bug in the tool remained undiscovered because the section's vaddr
      always happened to be 0.
      Signed-off-by: NRaymes Khoury <raymes@google.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      731ece41
  23. 17 12月, 2010 1 次提交
  24. 02 11月, 2010 1 次提交
  25. 26 8月, 2010 1 次提交
  26. 13 8月, 2010 1 次提交
  27. 11 8月, 2010 2 次提交
  28. 10 8月, 2010 1 次提交
  29. 03 8月, 2010 1 次提交
  30. 08 7月, 2010 1 次提交
  31. 12 6月, 2010 1 次提交
    • K
      kbuild: Fix modpost segfault · 1c938663
      Krzysztof Halasa 提交于
      Alan <alan@clueserver.org> writes:
      
      > program: /home/alan/GitTrees/linux-2.6-mid-ref/scripts/mod/modpost -o
      > Module.symvers -S vmlinux.o
      >
      > Program received signal SIGSEGV, Segmentation fault.
      
      It just hit me.
      It's the offset calculation in reloc_location() which overflows:
              return (void *)elf->hdr + sechdrs[section].sh_offset +
                     (r->r_offset - sechdrs[section].sh_addr);
      
      E.g. for the first rodata r entry:
      r->r_offset < sechdrs[section].sh_addr
      and the expression in the parenthesis produces 0xFFFFFFE0 or something
      equally wise.
      Reported-by: NAlan <alan@clueserver.org>
      Signed-off-by: NKrzysztof Hałasa <khc@pm.waw.pl>
      Tested-by: NAlan <alan@clueserver.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      1c938663
  32. 19 5月, 2010 1 次提交
    • O
      MODULE_DEVICE_TABLE(isapnp, ...) does nothing · fedb3d27
      Ondrej Zary 提交于
      On Monday 23 November 2009 04:29:53 Rusty Russell wrote:
      > On Mon, 23 Nov 2009 07:31:57 am Ondrej Zary wrote:
      > > The problem is that
      > > scripts/mod/file2alias.c simply ignores isapnp.
      >
      > AFAICT it always has, and noone has complained until now.  Perhaps
      > something was still reading /lib/modules/`uname -r`/modules.isapnpmap?
      
      The patch below works fine (at least with Debian). It needs your first
      patch that moves the definitions to mod_devicetable.h. Verified that
      aliases for these modules are generated correctly:
      
      drivers/media/radio/radio-sf16fmi.c
      drivers/net/ne.c
      drivers/net/3c515.c
      drivers/net/smc-ultra.c
      drivers/pcmcia/i82365.c
      drivers/scsi/aha1542.c
      drivers/scsi/aha152x.c
      drivers/scsi/sym53c416.c
      drivers/scsi/g_NCR5380.c
      
      Tested with RTL8019AS (ne), AVA-1505AE (aha152x) and dtc436e (g_NCR5380)
      cards - they now work automatically.
      
      Generate pnp:d aliases for isapnp_device_tables. This allows udev to load
      these modules automatically.
      Signed-off-by: NOndrej Zary <linux@rainbow-software.org>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      fedb3d27
  33. 18 5月, 2010 1 次提交
  34. 03 4月, 2010 1 次提交