13 Jan, 2012

3 commits

  • Move CMPXCHG_DOUBLE and rename it to HAVE_CMPXCHG_DOUBLE so architectures
    can simply select the option if it is supported.

    Signed-off-by: Heiko Carstens
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • Move CMPXCHG_LOCAL and rename it to HAVE_CMPXCHG_LOCAL so architectures
    can simply select the option if it is supported.

    Signed-off-by: Heiko Carstens
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • While implementing cmpxchg_double() on s390 I realized that we don't set
    CONFIG_CMPXCHG_LOCAL despite the fact that we have support for it.

    However setting that option will increase the size of struct page by
    eight bytes on 64 bit, which we certainly do not want. Also, it doesn't
    make sense that a present cpu feature should increase the size of struct
    page.

    Besides that it looks like the dependency to CMPXCHG_LOCAL is wrong and
    that it should depend on CMPXCHG_DOUBLE instead.

    This patch:

    If an architecture supports CMPXCHG_LOCAL this shouldn't result
    automatically in larger struct pages if the SLUB allocator is used.
    Instead introduce a new config option "HAVE_ALIGNED_STRUCT_PAGE" which
    can be selected if a double word aligned struct page is required. Also
    update x86 Kconfig so that it should work as before.

    Signed-off-by: Heiko Carstens
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     

12 Jan, 2012

2 commits

  • * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/intel config: Fix the APB_TIMER selection
    x86/mrst: Add additional debug prints for pb_keys
    x86/intel config: Revamp configuration to allow for Moorestown and Medfield
    x86/intel/scu/ipc: Match the changes in the x86 configuration
    x86/apb: Fix configuration constraints
    x86: Fix INTEL_MID silly
    x86/Kconfig: Cyclone-timer depends on x86-summit
    x86: Reduce clock calibration time during slave cpu startup
    x86/config: Revamp configuration for MID devices
    x86/sfi: Kill the IRQ as id hack

    Linus Torvalds
     
  • * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, efi: Break up large initrd reads
    x86, efi: EFI boot stub support
    efi: Add EFI file I/O data types
    efi.h: Add boottime->locate_handle search types
    efi.h: Add graphics protocol guids
    efi.h: Add allocation types for boottime->allocate_pages()
    efi.h: Add efi_image_loaded_t
    efi.h: Add struct definition for boot time services
    x86: Don't use magic strings for EFI loader signature
    x86: Add missing bzImage fields to struct setup_header

    Linus Torvalds
     

11 Jan, 2012

2 commits

  • lib: use generic pci_iomap on all architectures

    Many architectures don't want to pull in iomap.c,
    so they ended up duplicating pci_iomap from that file.
    That function isn't trivial, and we are going to modify it
    https://lkml.org/lkml/2011/11/14/183
    so the duplication hurts.

    This reduces the scope of the problem significantly,
    by moving pci_iomap to a separate file and
    referencing that from all architectures.

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    alpha: drop pci_iomap/pci_iounmap from pci-noop.c
    mn10300: switch to GENERIC_PCI_IOMAP
    mn10300: add missing __iomap markers
    frv: switch to GENERIC_PCI_IOMAP
    tile: switch to GENERIC_PCI_IOMAP
    tile: don't panic on iomap
    sparc: switch to GENERIC_PCI_IOMAP
    sh: switch to GENERIC_PCI_IOMAP
    powerpc: switch to GENERIC_PCI_IOMAP
    parisc: switch to GENERIC_PCI_IOMAP
    mips: switch to GENERIC_PCI_IOMAP
    microblaze: switch to GENERIC_PCI_IOMAP
    arm: switch to GENERIC_PCI_IOMAP
    alpha: switch to GENERIC_PCI_IOMAP
    lib: add GENERIC_PCI_IOMAP
    lib: move GENERIC_IOMAP to lib/Kconfig

    Fix up trivial conflicts due to changes nearby in arch/{m68k,score}/Kconfig

    Linus Torvalds
     
  • Randomization of PIE load address is hard coded in binfmt_elf.c for X86
    and ARM. Create a new Kconfig variable
    (CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE) for this and use it instead. Thus
    architecture specific policy is pushed out of the generic binfmt_elf.c and
    into the architecture Kconfig files.

    X86 and ARM Kconfigs are modified to select the new variable so there is
    no change in behavior. A follow on patch will select it for MIPS too.

    Signed-off-by: David Daney
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Alexander Viro
    Acked-by: H. Peter Anvin
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Daney
     

09 Jan, 2012

1 commit


07 Jan, 2012

1 commit

  • * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Skip cpus with apic-ids >= 255 in !x2apic_mode
    x86, x2apic: Allow "nox2apic" to disable x2apic mode setup by BIOS
    x86, x2apic: Fallback to xapic when BIOS doesn't setup interrupt-remapping
    x86, acpi: Skip acpi x2apic entries if the x2apic feature is not present
    x86, apic: Add probe() for apic_flat
    x86: Simplify code by removing a !SMP #ifdefs from 'struct cpuinfo_x86'
    x86: Convert per-cpu counter icr_read_retry_count into a member of irq_stat
    x86: Add per-cpu stat counter for APIC ICR read tries
    pci, x86/io-apic: Allow PCI_IOAPIC to be user configurable on x86
    x86: Fix the !CONFIG_NUMA build of the new CPU ID fixup code support
    x86: Add NumaChip support
    x86: Add x86_init platform override to fix up NUMA core numbering
    x86: Make flat_init_apic_ldr() available

    Linus Torvalds
     

30 Dec, 2011

1 commit

  • Seems Kconfig SELECT isn't selecting things hierarchically when
    selected.

    config APB_TIMER
    def_bool y if X86_INTEL_MID
    prompt "Intel MID APB Timer Support" if X86_INTEL_MID
    select DW_APB_TIMER
    depends on X86_INTEL_MID && SFI

    when we select APB_TIMER doesn't select DW_APB_TIMER so do it by
    hand.

    Signed-off-by: Alan Cox
    Link: http://lkml.kernel.org/n/tip-kpnaimplltk6d1lolusqj3ae@git.kernel.org
    Signed-off-by: Ingo Molnar

    Alan Cox
     

20 Dec, 2011

1 commit


18 Dec, 2011

3 commits


16 Dec, 2011

1 commit

  • Doh.. pass the brown paper bags - preferably filled with mince
    pies..

    This fixes occasional build failures.

    Signed-off-by: Alan Cox
    Link: http://lkml.kernel.org/n/tip-r0oc1knlvzuqr69artaeq8s8@git.kernel.org
    [ extended the changelog a bit ]
    Signed-off-by: Ingo Molnar

    Alan Cox
     

13 Dec, 2011

1 commit

  • There is currently a large divide between kernel development and the
    development of EFI boot loaders. The idea behind this patch is to give
    the kernel developers full control over the EFI boot process. As
    H. Peter Anvin put it,

    "The 'kernel carries its own stub' approach been very successful in
    dealing with BIOS, and would make a lot of sense to me for EFI as
    well."

    This patch introduces an EFI boot stub that allows an x86 bzImage to
    be loaded and executed by EFI firmware. The bzImage appears to the
    firmware as an EFI application. Luckily there are enough free bits
    within the bzImage header so that it can masquerade as an EFI
    application, thereby coercing the EFI firmware into loading it and
    jumping to its entry point. The beauty of this masquerading approach
    is that both BIOS and EFI boot loaders can still load and run the same
    bzImage, thereby allowing a single kernel image to work in any boot
    environment.

    The EFI boot stub supports multiple initrds, but they must exist on
    the same partition as the bzImage. Command-line arguments for the
    kernel can be appended after the bzImage name when run from the EFI
    shell, e.g.

    Shell> bzImage console=ttyS0 root=/dev/sdb initrd=initrd.img

    v7:
    - Fix checkpatch warnings.

    v6:

    - Try to allocate initrd memory just below hdr->inird_addr_max.

    v5:

    - load_options_size is UTF-16, which needs dividing by 2 to convert
    to the corresponding ASCII size.

    v4:

    - Don't read more than image->load_options_size

    v3:

    - Fix following warnings when compiling CONFIG_EFI_STUB=n

    arch/x86/boot/tools/build.c: In function ‘main’:
    arch/x86/boot/tools/build.c:138:24: warning: unused variable ‘pe_header’
    arch/x86/boot/tools/build.c:138:15: warning: unused variable ‘file_sz’

    - As reported by Matthew Garrett, some Apple machines have GOPs that
    don't have hardware attached. We need to weed these out by
    searching for ones that handle the PCIIO protocol.

    - Don't allocate memory if no initrds are on cmdline
    - Don't trust image->load_options_size

    Maarten Lankhorst noted:
    - Don't strip first argument when booted from efibootmgr
    - Don't allocate too much memory for cmdline
    - Don't update cmdline_size, the kernel considers it read-only
    - Don't accept '\n' for initrd names

    v2:

    - File alignment was too large, was 8192 should be 512. Reported by
    Maarten Lankhorst on LKML.
    - Added UGA support for graphics
    - Use VIDEO_TYPE_EFI instead of hard-coded number.
    - Move linelength assignment until after we've assigned depth
    - Dynamically fill out AddressOfEntryPoint in tools/build.c
    - Don't use magic number for GDT/TSS stuff. Requested by Andi Kleen
    - The bzImage may need to be relocated as it may have been loaded at
    a high address address by the firmware. This was required to get my
    macbook booting because the firmware loaded it at 0x7cxxxxxx, which
    triggers this error in decompress_kernel(),

    if (heap > ((-__PAGE_OFFSET-(128<
    Cc: Matthew Garrett
    Tested-by: Henrik Rydberg
    Signed-off-by: Matt Fleming
    Link: http://lkml.kernel.org/r/1321383097.2657.9.camel@mfleming-mobl1.ger.corp.intel.com
    Signed-off-by: H. Peter Anvin

    Matt Fleming
     

09 Dec, 2011

1 commit

  • Now all ARCH_POPULATES_NODE_MAP archs select HAVE_MEBLOCK_NODE_MAP -
    there's no user of early_node_map[] left. Kill early_node_map[] and
    replace ARCH_POPULATES_NODE_MAP with HAVE_MEMBLOCK_NODE_MAP. Also,
    relocate for_each_mem_pfn_range() and helper from mm.h to memblock.h
    as page_alloc.c would no longer host an alternative implementation.

    This change is ultimately one to one mapping and shouldn't cause any
    observable difference; however, after the recent changes, there are
    some functions which now would fit memblock.c better than page_alloc.c
    and dependency on HAVE_MEMBLOCK_NODE_MAP instead of HAVE_MEMBLOCK
    doesn't make much sense on some of them. Further cleanups for
    functions inside HAVE_MEMBLOCK_NODE_MAP in mm.h would be nice.

    -v2: Fix compile bug introduced by mis-spelling
    CONFIG_HAVE_MEMBLOCK_NODE_MAP to CONFIG_MEMBLOCK_HAVE_NODE_MAP in
    mmzone.h. Reported by Stephen Rothwell.

    Signed-off-by: Tejun Heo
    Cc: Stephen Rothwell
    Cc: Benjamin Herrenschmidt
    Cc: Yinghai Lu
    Cc: Tony Luck
    Cc: Ralf Baechle
    Cc: Martin Schwidefsky
    Cc: Chen Liqin
    Cc: Paul Mundt
    Cc: "David S. Miller"
    Cc: "H. Peter Anvin"

    Tejun Heo
     

06 Dec, 2011

4 commits

  • If we select a symbol it should have a type declared first
    otherwise in some situations the config tools get upset. They
    are currently perhaps a bit too resilient which is why this
    wasn't noticed initially.

    Signed-off-by: Alan Cox
    Link: http://lkml.kernel.org/r/20111206132811.4041.32549.stgit@bob.linux.org.uk
    Signed-off-by: Ingo Molnar

    Alan Cox
     
  • We currently fail to build on CONFIG_X86_INTEL_MID=y and
    CONFIG_X86_MRST unset.

    We could build all the bits to make generic MID work if you
    picked MID platform alone but that's really silly. Instead use
    select and two variables.

    This looks a bit daft right now but once we add a Medfield
    selection it'll start to look a good deal more sensible.

    Reported-by: Ingo Molnar
    Reported-by: Stanislaw Gruszka
    Signed-off-by: Alan Cox
    Link: http://lkml.kernel.org/r/20111205231433.28811.51297.stgit@bob.linux.org.uk
    Signed-off-by: Ingo Molnar

    Alan Cox
     
  • CONFIG_X86_CYCLONE_TIMER depends on CONFIG_X86_32_NON_STANDARD,
    which forces drivers/clocksource/cyclone.c to be compiled. The
    file doesn't do anything unless enabled by
    arch/x86/kernel/apic/summit_32.c

    Make CONFIG_X86_CYCLONE_TIMER depend by X86_SUMMIT instead, to
    avoid unnecessary code in other non-standard systems.

    Signed-off-by: Alessandro Rubini
    Cc: john stultz
    Link: http://lkml.kernel.org/r/20111028224842.GA7582@mail.gnudd.com
    Signed-off-by: Ingo Molnar

    Alessandro Rubini
     
  • Adds support for Numascale NumaChip large-SMP systems. It is
    needed to enable the booting of more than ~168 cores.

    v2:
    - [Steffen] enumerate only accessible northbridges
    - [Daniel] rediffed and validated against 3.1-rc10

    v3:
    - [Daniel] use x86_init core numbering override
    - [Daniel] cleanups as per feedback

    v4:
    - [Daniel] use updated x86_cpuinit override

    v5:
    - drop disabling interrupts locally, as ISR write is atomic; drop delay
    - added read-mostly annotations where appropriate
    - require CONFIG_SMP, so drop conditional path

    Workload tested on 96 cores/16 sockets.

    Signed-off-by: Steffen Persvold
    Signed-off-by: Daniel J Blueman
    Cc: Jesse Barnes
    Link: http://lkml.kernel.org/r/1323101246-2400-1-git-send-email-daniel@numascale-asia.com
    Signed-off-by: Ingo Molnar

    Steffen Persvold
     

05 Dec, 2011

1 commit

  • This follows on from the patch applied in 3.2rc1 which creates
    an INTEL_MID configuration. We can now add the entry for
    Medfield specific code. After this is merged the final patch
    will be submitted which moves the rest of the device Kconfig
    dependancies to MRST/MEDFIELD/INTEL_MID as appropriate.

    Signed-off-by: Alan Cox
    Signed-off-by: Ingo Molnar

    Alan Cox
     

29 Nov, 2011

1 commit

  • Conflicts & resolutions:

    * arch/x86/xen/setup.c

    dc91c728fd "xen: allow extra memory to be in multiple regions"
    24aa07882b "memblock, x86: Replace memblock_x86_reserve/free..."

    conflicted on xen_add_extra_mem() updates. The resolution is
    trivial as the latter just want to replace
    memblock_x86_reserve_range() with memblock_reserve().

    * drivers/pci/intel-iommu.c

    166e9278a3f "x86/ia64: intel-iommu: move to drivers/iommu/"
    5dfe8660a3d "bootmem: Replace work_with_active_regions() with..."

    conflicted as the former moved the file under drivers/iommu/.
    Resolved by applying the chnages from the latter on the moved
    file.

    * mm/Kconfig

    6661672053a "memblock: add NO_BOOTMEM config symbol"
    c378ddd53f9 "memblock, x86: Make ARCH_DISCARD_MEMBLOCK a config option"

    conflicted trivially. Both added config options. Just
    letting both add their own options resolves the conflict.

    * mm/memblock.c

    d1f0ece6cdc "mm/memblock.c: small function definition fixes"
    ed7b56a799c "memblock: Remove memblock_memory_can_coalesce()"

    confliected. The former updates function removed by the
    latter. Resolution is trivial.

    Signed-off-by: Tejun Heo

    Tejun Heo
     

25 Nov, 2011

1 commit


23 Nov, 2011

1 commit


07 Nov, 2011

1 commit

  • * 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    scsi: drop unused Kconfig symbol
    pci: drop unused Kconfig symbol
    stmmac: drop unused Kconfig symbol
    x86: drop unused Kconfig symbol
    powerpc: drop unused Kconfig symbols
    powerpc: 40x: drop unused Kconfig symbol
    mips: drop unused Kconfig symbols
    openrisc: drop unused Kconfig symbols
    arm: at91: drop unused Kconfig symbol
    samples: drop unused Kconfig symbol
    m32r: drop unused Kconfig symbol
    score: drop unused Kconfig symbols
    sh: drop unused Kconfig symbol
    um: drop unused Kconfig symbol
    sparc: drop unused Kconfig symbol
    alpha: drop unused Kconfig symbol

    Fix up trivial conflict in drivers/net/ethernet/stmicro/stmmac/Kconfig
    as per Michal: the STMMAC_DUAL_MAC config variable is still unused and
    should be deleted.

    Linus Torvalds
     

01 Nov, 2011

1 commit


28 Oct, 2011

2 commits


26 Oct, 2011

3 commits

  • * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/irq: Standardize on CONFIG_SPARSE_IRQ=y
    x86, ioapic: Clean up ioapic/apic_id usage
    x86, ioapic: Factor out print_IO_APIC() to only print one io apic
    x86, ioapic: Print out irte with right ioapic index
    x86, ioapic: Split up setup_ioapic_entry()
    x86, ioapic: Pass struct irq_attr * to setup_ioapic_irq()
    apic, i386/bigsmp: Fix false warnings regarding logical APIC ID mismatches

    Linus Torvalds
     
  • * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
    time, s390: Get rid of compile warning
    dw_apb_timer: constify clocksource name
    time: Cleanup old CONFIG_GENERIC_TIME references that snuck in
    time: Change jiffies_to_clock_t() argument type to unsigned long
    alarmtimers: Fix error handling
    clocksource: Make watchdog reset lockless
    posix-cpu-timers: Cure SMP accounting oddities
    s390: Use direct ktime path for s390 clockevent device
    clockevents: Add direct ktime programming function
    clockevents: Make minimum delay adjustments configurable
    nohz: Remove "Switched to NOHz mode" debugging messages
    proc: Consider NO_HZ when printing idle and iowait times
    nohz: Make idle/iowait counter update conditional
    nohz: Fix update_ts_time_stat idle accounting
    cputime: Clean up cputime_to_usecs and usecs_to_cputime macros
    alarmtimers: Rework RTC device selection using class interface
    alarmtimers: Add try_to_cancel functionality
    alarmtimers: Add more refined alarm state tracking
    alarmtimers: Remove period from alarm structure
    alarmtimers: Remove interval cap limit hack
    ...

    Linus Torvalds
     
  • * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, ioapic: Consolidate the explicit EOI code
    x86, ioapic: Restore the mask bit correctly in eoi_ioapic_irq()
    x86, kdump, ioapic: Reset remote-IRR in clear_IO_APIC
    iommu: Rename the DMAR and INTR_REMAP config options
    x86, ioapic: Define irq_remap_modify_chip_defaults()
    x86, msi, intr-remap: Use the ioapic set affinity routine
    iommu: Cleanup ifdefs in detect_intel_iommu()
    iommu: No need to set dmar_disabled in check_zero_address()
    iommu: Move IOMMU specific code to intel-iommu.c
    intr_remap: Call dmar_dev_scope_init() explicitly
    x86, x2apic: Enable the bios request for x2apic optout

    Linus Torvalds
     

13 Oct, 2011

1 commit

  • Sparseirq got introduced in v2.6.28 and Thomas did a huge cleanup
    around v2.6.38 that eliminated basically all disadvantages
    of it.

    So we can remove non-sparseirq support now and simplify
    our IRQ degrees of freedom a bit.

    Suggested-and-acked-by: Thomas Gleixner
    Signed-off-by: Yinghai Lu
    Link: http://lkml.kernel.org/r/4E95E21D.6090200@oracle.com
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     

28 Sep, 2011

1 commit

  • There are numerous broken references to Documentation files (in other
    Documentation files, in comments, etc.). These broken references are
    caused by typo's in the references, and by renames or removals of the
    Documentation files. Some broken references are simply odd.

    Fix these broken references, sometimes by dropping the irrelevant text
    they were part of.

    Signed-off-by: Paul Bolle
    Signed-off-by: Jiri Kosina

    Paul Bolle
     

21 Sep, 2011

2 commits

  • This new driver replaces the old PCEngines Alix 2/3 LED driver with a
    new driver that controls the LEDs through the leds-gpio driver. The
    old driver accessed GPIOs directly, which created a conflict and
    prevented also loading the cs5535-gpio driver to read other GPIOs on
    the Alix board. With this new driver, we hook into leds-gpio which in
    turn uses GPIO to control the LEDs and therefore it's possible to
    control both the LEDs and access onboard GPIOs

    Driver is moved to platform/geode as requested by Grant and any other
    geode initialisation modules should move here also

    This driver is inspired by leds-net5501.c by Alessandro Zummo.

    Ideally, leds-net5501.c should also be moved to platform/geode.
    Additionally the driver relies on parts of the patch: 7f131cf3ed ("leds:
    leds-alix2c - take port address from MSR) by Daniel Mack to perform
    detection of the Alix board.

    [akpm@linux-foundation.org: include module.h]

    Signed-off-by: Ed Wildgoose
    Cc: git@wildgooses.com
    Cc: Alessandro Zummo
    Cc: Daniel Mack
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Richard Purdie
    Reviewed-by: Grant Likely
    Signed-off-by: Andrew Morton
    Signed-off-by: Thomas Gleixner

    Ed Wildgoose
     
  • Change the CONFIG_DMAR to CONFIG_INTEL_IOMMU to be consistent
    with the other IOMMU options.

    Rename the CONFIG_INTR_REMAP to CONFIG_IRQ_REMAP to match the
    irq subsystem name.

    And define the CONFIG_DMAR_TABLE for the common ACPI DMAR
    routines shared by both CONFIG_INTEL_IOMMU and CONFIG_IRQ_REMAP.

    Signed-off-by: Suresh Siddha
    Cc: yinghai@kernel.org
    Cc: youquan.song@intel.com
    Cc: joerg.roedel@amd.com
    Cc: tony.luck@intel.com
    Cc: dwmw2@infradead.org
    Link: http://lkml.kernel.org/r/20110824001456.558630224@sbsiddha-desk.sc.intel.com
    Signed-off-by: Ingo Molnar

    Suresh Siddha
     

08 Sep, 2011

1 commit

  • The automatic increase of the min_delta_ns of a clockevents device
    should be done in the clockevents code as the minimum delay is an
    attribute of the clockevents device.

    In addition not all architectures want the automatic adjustment, on a
    massively virtualized system it can happen that the programming of a
    clock event fails several times in a row because the virtual cpu has
    been rescheduled quickly enough. In that case the minimum delay will
    erroneously be increased with no way back. The new config symbol
    GENERIC_CLOCKEVENTS_MIN_ADJUST is used to enable the automatic
    adjustment. The config option is selected only for x86.

    Signed-off-by: Martin Schwidefsky
    Cc: john stultz
    Link: http://lkml.kernel.org/r/20110823133142.494157493@de.ibm.com
    Signed-off-by: Thomas Gleixner

    Martin Schwidefsky
     

03 Aug, 2011

2 commits

  • Some trivial conflicts due to other various merges
    adding to the end of common lists sooner than this one.

    arch/ia64/Kconfig
    arch/powerpc/Kconfig
    arch/x86/Kconfig
    lib/Kconfig
    lib/Makefile

    Signed-off-by: Len Brown

    Len Brown
     
  • cmpxchg() is widely used by lockless code, including NMI-safe lockless
    code. But on some architectures, the cmpxchg() implementation is not
    NMI-safe, on these architectures the lockless code may need a
    spin_trylock_irqsave() based implementation.

    This patch adds a Kconfig option: ARCH_HAVE_NMI_SAFE_CMPXCHG, so that
    NMI-safe lockless code can depend on it or provide different
    implementation according to it.

    On many architectures, cmpxchg is only NMI-safe for several specific
    operand sizes. So, ARCH_HAVE_NMI_SAFE_CMPXCHG define in this patch
    only guarantees cmpxchg is NMI-safe for sizeof(unsigned long).

    Signed-off-by: Huang Ying
    Acked-by: Mike Frysinger
    Acked-by: Paul Mundt
    Acked-by: Hans-Christian Egtvedt
    Acked-by: Benjamin Herrenschmidt
    Acked-by: Chris Metcalf
    Acked-by: Richard Henderson
    CC: Mikael Starvik
    Acked-by: David Howells
    CC: Yoshinori Sato
    CC: Tony Luck
    CC: Hirokazu Takata
    CC: Geert Uytterhoeven
    CC: Michal Simek
    Acked-by: Ralf Baechle
    CC: Kyle McMartin
    CC: Martin Schwidefsky
    CC: Chen Liqin
    CC: "David S. Miller"
    CC: Ingo Molnar
    CC: Chris Zankel
    Signed-off-by: Len Brown

    Huang Ying
     

01 Aug, 2011

1 commit

  • Architectural inlines to get random ints and longs using the RDRAND
    instruction.

    Intel has introduced a new RDRAND instruction, a Digital Random Number
    Generator (DRNG), which is functionally an high bandwidth entropy
    source, cryptographic whitener, and integrity monitor all built into
    hardware. This enables RDRAND to be used directly, bypassing the
    kernel random number pool.

    For technical documentation, see:

    http://software.intel.com/en-us/articles/download-the-latest-bull-mountain-software-implementation-guide/

    In this patch, this is *only* used for the nonblocking random number
    pool. RDRAND is a nonblocking source, similar to our /dev/urandom,
    and is therefore not a direct replacement for /dev/random. The
    architectural hooks presented in the previous patch only feed the
    kernel internal users, which only use the nonblocking pool, and so
    this is not a problem.

    Since this instruction is available in userspace, there is no reason
    to have a /dev/hw_rng device driver for the purpose of feeding rngd.
    This is especially so since RDRAND is a nonblocking source, and needs
    additional whitening and reduction (see the above technical
    documentation for details) in order to be of "pure entropy source"
    quality.

    The CONFIG_EXPERT compile-time option can be used to disable this use
    of RDRAND.

    Signed-off-by: H. Peter Anvin
    Originally-by: Fenghua Yu
    Cc: Matt Mackall
    Cc: Herbert Xu
    Cc: "Theodore Ts'o"

    H. Peter Anvin