25 Jul, 2010

1 commit

  • Commit 2a6b69765ad794389f2fc3e14a0afa1a995221c2
    (ACPI: Store NVS state even when entering suspend to RAM) caused the
    ACPI suspend code save the NVS area during suspend and restore it
    during resume unconditionally, although it is known that some systems
    need to use acpi_sleep=s4_nonvs for hibernation to work. To allow
    the affected systems to avoid saving and restoring the NVS area
    during suspend to RAM and resume, introduce kernel command line
    option acpi_sleep=nonvs and make acpi_sleep=s4_nonvs work as its
    alias temporarily (add acpi_sleep=s4_nonvs to the feature removal
    file).

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=16396 .

    Signed-off-by: Rafael J. Wysocki
    Reported-and-tested-by: tomas m
    Signed-off-by: Len Brown

    Rafael J. Wysocki
     

14 Jul, 2010

1 commit

  • via following scripts

    FILES=$(find * -type f | grep -vE 'oprofile|[^K]config')

    sed -i \
    -e 's/lmb/memblock/g' \
    -e 's/LMB/MEMBLOCK/g' \
    $FILES

    for N in $(find . -name lmb.[ch]); do
    M=$(echo $N | sed 's/lmb/memblock/g')
    mv $N $M
    done

    and remove some wrong change like lmbench and dlmb etc.

    also move memblock.c from lib/ to mm/

    Suggested-by: Ingo Molnar
    Acked-by: "H. Peter Anvin"
    Acked-by: Benjamin Herrenschmidt
    Acked-by: Linus Torvalds
    Signed-off-by: Yinghai Lu
    Signed-off-by: Benjamin Herrenschmidt

    Yinghai Lu
     

19 Jun, 2010

1 commit

  • Commit c7f486567c1d0acd2e4166c47069835b9f75e77b
    (PCI PM: PCIe PME root port service driver) causes the native PCIe
    PME signaling to be used by default, if the BIOS allows the kernel to
    control the standard configuration registers of PCIe root ports.
    However, the native PCIe PME is coupled to the native PCIe hotplug
    and calling pcie_pme_acpi_setup() makes some BIOSes expect that
    the native PCIe hotplug will be used as well. That, in turn, causes
    problems to appear on systems where the PCIe hotplug driver is not
    loaded. The usual symptom, as reported by Jaroslav Kameník and
    others, is that the ACPI GPE associated with PCIe hotplug keeps
    firing continuously causing kacpid to take substantial percentage
    of CPU time.

    To work around this issue, change the default so that the native
    PCIe PME signaling is only used if directly requested with the help
    of the pcie_pme= command line switch.

    Fixes https://bugzilla.kernel.org/show_bug.cgi?id=15924 , which is
    a listed regression from 2.6.33.

    Signed-off-by: Rafael J. Wysocki
    Reported-by: Jaroslav Kameník
    Tested-by: Antoni Grzymala
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     

29 May, 2010

2 commits

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (27 commits)
    ACPI: Don't let acpi_pad needlessly mark TSC unstable
    drivers/acpi/sleep.h: Checkpatch cleanup
    ACPI: Minor cleanup eliminating redundant PMTIMER_TICKS to NS conversion
    ACPI: delete unused c-state promotion/demotion data strucutures
    ACPI: video: fix acpi_backlight=video
    ACPI: EC: Use kmemdup
    drivers/acpi: use kasprintf
    ACPI, APEI, EINJ injection parameters support
    Add x64 support to debugfs
    ACPI, APEI, Use ERST for persistent storage of MCE
    ACPI, APEI, Error Record Serialization Table (ERST) support
    ACPI, APEI, Generic Hardware Error Source memory error support
    ACPI, APEI, UEFI Common Platform Error Record (CPER) header
    Unified UUID/GUID definition
    ACPI Hardware Error Device (PNP0C33) support
    ACPI, APEI, PCIE AER, use general HEST table parsing in AER firmware_first setup
    ACPI, APEI, Document for APEI
    ACPI, APEI, EINJ support
    ACPI, APEI, HEST table parsing
    ACPI, APEI, APEI supporting infrastructure
    ...

    Linus Torvalds
     
  • Len Brown
     

26 May, 2010

1 commit


25 May, 2010

1 commit

  • Move the limited watchdog driver help from kernel-parameters.txt
    to Documentation/watchdog/watchdog-parameters.txt and add info to it
    for all watchdog drivers except the ones that have driver-specific
    files already.

    Correct minor comments and MODULE_PARM_DESC() text in 2 places.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Wim Van Sebroeck

    Randy Dunlap
     

21 May, 2010

5 commits

  • This patch adds the capability to use the usb debug port with the
    kernel debugger. It is also still possible to use this functionality
    with or without the earlyprintk=dbgpX. It is possible to use the
    kgdbwait boot argument to debug very early in the kernel start up code.

    There are two ways to use this driver extension with a kernel boot argument.

    1) kgdbdbgp=# -- Where # is the number of the usb debug controller

    You must use sysrq-g to break into the kernel debugger on another
    connection type other than the dbgp.

    2) kgdbdbgp=#debugControlNum#,#Seconds#

    In this mode, the usb debug port is polled every #Seconds# for
    character input. It is possible to use gdb or press control-c to
    break into the kernel debugger.

    From the implementation perspective there are 3 high level changes.

    1) Allow variable retries for the the hardware via dbgp_bulk_read().

    The amount of retries for the dbgp_bulk_read() needed to be
    variable instead of fixed. We do not want to poll at all when the
    kernel is operating in interrupt driven mode. The polling only
    occurs if the kernel was booted when specifying some number of
    seconds via the kgdbdbgp boot argument (IE kgdbdbgp=0,1). In this
    case the loop count is reduced to 1 so as introduce the smallest
    amount of latency as possible.

    2) Save the bulk IN endpoint address for use by the kgdb code.

    3) The addition of the kgdb interface code.

    This consisted of adding in a character read function for the dbgp
    as well as a polling thread to allow the dbgp to interrupt the
    kernel execution. The rest is the typical kgdb I/O api.

    CC: Eric Biederman
    CC: Yinghai Lu
    CC: linux-usb@vger.kernel.org
    Signed-off-by: Jason Wessel
    Acked-by: Greg Kroah-Hartman

    Jason Wessel
     
  • The ekgdboc= differs from kgdboc= in that you can begin debuggin as
    soon as the exceptions are setup and the kgdb I/O driver is available,
    instead of waiting until the tty subsystem is available.

    CC: kgdb-bugreport@lists.sourceforge.net
    Signed-off-by: Jason Wessel

    Jason Wessel
     
  • Update the kgdb docs to reflect the new directory structure and API.

    Merge in the kdb shell information.

    [Randy Dunlap : grammatical corrections]

    CC: Randy Dunlap
    Signed-off-by: Jason Wessel

    Jason Wessel
     
  • This patch adds in the kdb PS/2 keyboard driver. This was mostly a
    direct port from the original kdb where I cleaned up the code against
    checkpatch.pl and added the glue to stitch it into kgdb.

    This patch also enables early kdb debug via kgdbwait and the keyboard.

    All the access to configure kdb using either a serial console or the
    keyboard is done via kgdboc.

    If you want to use only the keyboard and want to break in early you
    would add to your kernel command arguments:

    kgdboc=kbd kgdbwait

    If you wanted serial and or the keyboard access you could use:

    kgdboc=kbd,ttyS0

    You can also configure kgdboc as a kernel module or at run time with
    the sysfs where you can activate and deactivate kgdb.

    Turn it on:
    echo kbd,ttyS0 > /sys/module/kgdboc/parameters/kgdboc

    Turn it off:
    echo "" > /sys/module/kgdboc/parameters/kgdboc

    Signed-off-by: Jason Wessel
    Reviewed-by: Dmitry Torokhov

    Jason Wessel
     
  • * 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (22 commits)
    ACPI: fix early DSDT dmi check warnings on ia64
    ACPICA: Update version to 20100428.
    ACPICA: Update/clarify some parameter names associated with acpi_handle
    ACPICA: Rename acpi_ex_system_do_suspend->acpi_ex_system_do_sleep
    ACPICA: Prevent possible allocation overrun during object copy
    ACPICA: Split large file, evgpeblk
    ACPICA: Add GPE support for dynamically loaded ACPI tables
    ACPICA: Clarify/rename some root table descriptor fields
    ACPICA: Update version to 20100331.
    ACPICA: Minimize the differences between linux GPE code and ACPICA code base
    ACPI: add boot option acpi=copy_dsdt to fix corrupt DSDT
    ACPICA: Update DSDT copy/detection.
    ACPICA: Add subsystem option to force copy of DSDT to local memory
    ACPICA: Add detection of corrupted/replaced DSDT
    ACPICA: Add write support for DataTable operation regions
    ACPICA: Fix for acpi_reallocate_root_table for incorrect root table copy
    ACPICA: Update comments/headers, no functional change
    ACPICA: Update version to 20100304
    ACPICA: Fix for possible fault in acpi_ex_release_mutex
    ACPICA: Standardize integer output for ACPICA warnings/errors
    ...

    Linus Torvalds
     

20 May, 2010

3 commits

  • …s/security-testing-2.6

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (61 commits)
    KEYS: Return more accurate error codes
    LSM: Add __init to fixup function.
    TOMOYO: Add pathname grouping support.
    ima: remove ACPI dependency
    TPM: ACPI/PNP dependency removal
    security/selinux/ss: Use kstrdup
    TOMOYO: Use stack memory for pending entry.
    Revert "ima: remove ACPI dependency"
    Revert "TPM: ACPI/PNP dependency removal"
    KEYS: Do preallocation for __key_link()
    TOMOYO: Use mutex_lock_interruptible.
    KEYS: Better handling of errors from construct_alloc_key()
    KEYS: keyring_serialise_link_sem is only needed for keyring->keyring links
    TOMOYO: Use GFP_NOFS rather than GFP_KERNEL.
    ima: remove ACPI dependency
    TPM: ACPI/PNP dependency removal
    selinux: generalize disabling of execmem for plt-in-heap archs
    LSM Audit: rename LSM_AUDIT_NO_AUDIT to LSM_AUDIT_DATA_NONE
    CRED: Holding a spinlock does not imply the holding of RCU read lock
    SMACK: Don't #include Ext2 headers
    ...

    Linus Torvalds
     
  • ERST is a way provided by APEI to save and retrieve hardware error
    record to and from some simple persistent storage (such as flash).

    The Linux kernel support implementation is quite simple and workable
    in NMI context. So it can be used to save hardware error record into
    flash in hardware error exception or NMI handler, where other more
    complex persistent storage such as disk is not usable. After saving
    hardware error records via ERST in hardware error exception or NMI
    handler, the error records can be retrieved and logged into disk or
    network after a clean reboot.

    For more information about ERST, please refer to ACPI Specification
    version 4.0, section 17.4.

    This patch incorporate fixes from Jin Dongming.

    Signed-off-by: Huang Ying
    Signed-off-by: Andi Kleen
    CC: Jin Dongming
    Signed-off-by: Len Brown

    Huang Ying
     
  • Add document for APEI, including kernel parameters and EINJ debug file
    sytem interface.

    Signed-off-by: Huang Ying
    Signed-off-by: Andi Kleen
    Signed-off-by: Len Brown

    Huang Ying
     

18 May, 2010

1 commit

  • …el/git/tip/linux-2.6-tip

    * 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    tracing: Fix "integer as NULL pointer" warning.
    tracing: Fix tracepoint.h DECLARE_TRACE() to allow more than one header
    tracing: Make the documentation clear on trace_event boot option
    ring-buffer: Wrap open-coded WARN_ONCE
    tracing: Convert nop macros to static inlines
    tracing: Fix sleep time function profiling
    tracing: Show sample std dev in function profiling
    tracing: Add documentation for trace commands mod, traceon/traceoff
    ring-buffer: Make benchmark handle missed events
    ring-buffer: Make non-consuming read less expensive with lots of cpus.
    tracing: Add graph output support for irqsoff tracer
    tracing: Have graph flags passed in to ouput functions
    tracing: Add ftrace events for graph tracer
    tracing: Dump either the oops's cpu source or all cpus buffers
    tracing: Fix uninitialized variable of tracing/trace output

    Linus Torvalds
     

13 May, 2010

1 commit


11 May, 2010

1 commit


06 May, 2010

1 commit


23 Apr, 2010

2 commits


22 Apr, 2010

1 commit

  • The ftrace_dump_on_oops kernel parameter, sysctl and sysrq let one
    dump every cpu buffers when an oops or panic happens.

    It's nice when you have few cpus but it may take ages if have many,
    plus you miss the real origin of the problem in all the cpu traces.

    Sometimes, all you need is to dump the cpu buffer that triggered the
    opps, most of the time it is our main interest.

    This patch modifies ftrace_dump_on_oops to handle this choice.

    The ftrace_dump_on_oops kernel parameter, when it comes alone, has
    the same behaviour than before. But ftrace_dump_on_oops=orig_cpu
    will only dump the buffer of the cpu that oops'ed.

    Similarly, sysctl kernel.ftrace_dump_on_oops=1 and
    echo 1 > /proc/sys/kernel/ftrace_dump_on_oops keep their previous
    behaviour. But setting 2 jumps into cpu origin dump mode.

    v2: Fix double setup
    v3: Fix spelling issues reported by Randy Dunlap
    v4: Also update __ftrace_dump in the selftests

    Signed-off-by: Frederic Weisbecker
    Acked-by: David S. Miller
    Acked-by: Steven Rostedt
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Li Zefan
    Cc: Lai Jiangshan

    Frederic Weisbecker
     

20 Apr, 2010

1 commit

  • Some BIOS on Toshiba machines corrupt the DSDT, so add a new
    boot option acpi=copy_dsdt to workaround it.
    Add warning message to ask users to use this option if corrupt DSDT detected.

    Also build a DMI blacklist to check it and automatically copy DSDT.

    https://bugzilla.kernel.org/show_bug.cgi?id=14679

    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Lin Ming
     

07 Apr, 2010

2 commits


31 Mar, 2010

1 commit


26 Mar, 2010

1 commit


15 Mar, 2010

2 commits

  • Now that we check for physically present processors before blindly
    evaluating _PDC, we no longer need to maintain a DMI opt-in table
    nor a kernel param.

    Acked-by: Venkatesh Pallipadi
    Signed-off-by: Alex Chiang
    Signed-off-by: Len Brown

    Alex Chiang
     
  • acpi=ht was important in 2003 -- before ACPI was
    universally deployed and enabled by default in
    the major Linux distributions.

    At that time, there were a fair number of people who
    or chose to, or needed to, run with acpi=off,
    yet also wanted access to Hyper-threading.

    Today we find that many invocations of "acpi=ht"
    are accidental, and thus is it possible that it
    is doing more harm than good.

    In 2.6.34, we warn on invocation of acpi=ht.
    In 2.6.35, we delete the boot option.

    Signed-off-by: Len Brown

    Len Brown
     

08 Mar, 2010

1 commit

  • * 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)
    x86, mrst: Fix whitespace breakage in apb_timer.c
    x86, mrst: Fix APB timer per cpu clockevent
    x86, mrst: Remove X86_MRST dependency on PCI_IOAPIC
    x86, olpc: Use pci subarch init for OLPC
    x86, pci: Add arch_init to x86_init abstraction
    x86, mrst: Add Kconfig dependencies for Moorestown
    x86, pci: Exclude Moorestown PCI code if CONFIG_X86_MRST=n
    x86, numaq: Make CONFIG_X86_NUMAQ depend on CONFIG_PCI
    x86, pci: Add sanity check for PCI fixed bar probing
    x86, legacy_irq: Remove duplicate vector assigment
    x86, legacy_irq: Remove left over nr_legacy_irqs
    x86, mrst: Platform clock setup code
    x86, apbt: Moorestown APB system timer driver
    x86, mrst: Add vrtc platform data setup code
    x86, mrst: Add platform timer info parsing code
    x86, mrst: Fill in PCI functions in x86_init layer
    x86, mrst: Add dummy legacy pic to platform setup
    x86/PCI: Moorestown PCI support
    x86, ioapic: Add dummy ioapic functions
    x86, ioapic: Early enable ioapic for timer irq
    ...

    Fixed up semantic conflict of new clocksources due to commit
    17622339af25 ("clocksource: add argument to resume callback").

    Linus Torvalds
     

04 Mar, 2010

1 commit

  • * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (25 commits)
    x86: Fix out of order of gsi
    x86: apic: Fix mismerge, add arch_probe_nr_irqs() again
    x86, irq: Keep chip_data in create_irq_nr and destroy_irq
    xen: Remove unnecessary arch specific xen irq functions.
    smp: Use nr_cpus= to set nr_cpu_ids early
    x86, irq: Remove arch_probe_nr_irqs
    sparseirq: Use radix_tree instead of ptrs array
    sparseirq: Change irq_desc_ptrs to static
    init: Move radix_tree_init() early
    irq: Remove unnecessary bootmem code
    x86: Add iMac9,1 to pci_reboot_dmi_table
    x86: Convert i8259_lock to raw_spinlock
    x86: Convert nmi_lock to raw_spinlock
    x86: Convert ioapic_lock and vector_lock to raw_spinlock
    x86: Avoid race condition in pci_enable_msix()
    x86: Fix SCI on IOAPIC != 0
    x86, ia32_aout: do not kill argument mapping
    x86, irq: Move __setup_vector_irq() before the first irq enable in cpu online path
    x86, irq: Update the vector domain for legacy irqs handled by io-apic
    x86, irq: Don't block IRQ0_VECTOR..IRQ15_VECTOR's on all cpu's
    ...

    Linus Torvalds
     

01 Mar, 2010

3 commits

  • Conflicts:
    drivers/firmware/iscsi_ibft.c

    David S. Miller
     
  • * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, mm: Unify kernel_physical_mapping_init() API
    x86, mm: Allow highmem user page tables to be disabled at boot time
    x86: Do not reserve brk for DMI if it's not going to be used
    x86: Convert tlbstate_lock to raw_spinlock
    x86: Use the generic page_is_ram()
    x86: Remove BIOS data range from e820
    Move page_is_ram() declaration to mm.h
    Generic page_is_ram: use __weak
    resources: introduce generic page_is_ram()

    Linus Torvalds
     
  • …r-linus', 'x86-debug-for-linus', 'x86-doc-for-linus', 'x86-gpu-for-linus' and 'x86-rlimit-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

    * 'core-ipi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    generic-ipi: Optimize accesses by using DEFINE_PER_CPU_SHARED_ALIGNED for IPI data

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    plist: Fix grammar mistake, and c-style mistake

    * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    kprobes: Add mcount to the kprobes blacklist

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86_64: Print modules like i386 does

    * 'x86-doc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: Put 'nopat' in kernel-parameters

    * 'x86-gpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86-64: Allow fbdev primary video code

    * 'x86-rlimit-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: Use helpers for rlimits

    Linus Torvalds
     

25 Feb, 2010

2 commits

  • Distros generally (I looked at Debian, RHEL5 and SLES11) seem to
    enable CONFIG_HIGHPTE for any x86 configuration which has highmem
    enabled. This means that the overhead applies even to machines which
    have a fairly modest amount of high memory and which therefore do not
    really benefit from allocating PTEs in high memory but still pay the
    price of the additional mapping operations.

    Running kernbench on a 4G box I found that with CONFIG_HIGHPTE=y but
    no actual highptes being allocated there was a reduction in system
    time used from 59.737s to 55.9s.

    With CONFIG_HIGHPTE=y and highmem PTEs being allocated:
    Average Optimal load -j 4 Run (std deviation):
    Elapsed Time 175.396 (0.238914)
    User Time 515.983 (5.85019)
    System Time 59.737 (1.26727)
    Percent CPU 263.8 (71.6796)
    Context Switches 39989.7 (4672.64)
    Sleeps 42617.7 (246.307)

    With CONFIG_HIGHPTE=y but with no highmem PTEs being allocated:
    Average Optimal load -j 4 Run (std deviation):
    Elapsed Time 174.278 (0.831968)
    User Time 515.659 (6.07012)
    System Time 55.9 (1.07799)
    Percent CPU 263.8 (71.266)
    Context Switches 39929.6 (4485.13)
    Sleeps 42583.7 (373.039)

    This patch allows the user to control the allocation of PTEs in
    highmem from the command line ("userpte=nohigh") but retains the
    status-quo as the default.

    It is possible that some simple heuristic could be developed which
    allows auto-tuning of this option however I don't have a sufficiently
    large machine available to me to perform any particularly meaningful
    experiments. We could probably handwave up an argument for a threshold
    at 16G of total RAM.

    Assuming 768M of lowmem we have 196608 potential lowmem PTE
    pages. Each page can map 2M of RAM in a PAE-enabled configuration,
    meaning a maximum of 384G of RAM could potentially be mapped using
    lowmem PTEs.

    Even allowing generous factor of 10 to account for other required
    lowmem allocations, generous slop to account for page sharing (which
    reduces the total amount of RAM mappable by a given number of PT
    pages) and other innacuracies in the estimations it would seem that
    even a 32G machine would not have a particularly pressing need for
    highmem PTEs. I think 32G could be considered to be at the upper bound
    of what might be sensible on a 32 bit machine (although I think in
    practice 64G is still supported).

    It's seems questionable if HIGHPTE is even a win for any amount of RAM
    you would sensibly run a 32 bit kernel on rather than going 64 bit.

    Signed-off-by: Ian Campbell
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Ian Campbell
     
  • Moorestown platform does not have PIT or HPET platform timers. Instead it
    has a bank of eight APB timers. The number of available timers to the os
    is exposed via SFI mtmr tables. All APB timer interrupts are routed via
    ioapic rtes and delivered as MSI.
    Currently, we use timer 0 and 1 for per cpu clockevent devices, timer 2
    for clocksource.

    Signed-off-by: Jacob Pan
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Jacob Pan
     

24 Feb, 2010

1 commit

  • The main benefit of using ACPI host bridge window information is that
    we can do better resource allocation in systems with multiple host bridges,
    e.g., http://bugzilla.kernel.org/show_bug.cgi?id=14183

    Sometimes we need _CRS information even if we only have one host bridge,
    e.g., https://bugs.launchpad.net/ubuntu/+source/linux/+bug/341681

    Most of these systems are relatively new, so this patch turns on
    "pci=use_crs" only on machines with a BIOS date of 2008 or newer.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     

23 Feb, 2010

2 commits

  • Apparently, some machines may have problems with PCI run-time power
    management if MSIs are used for the native PCIe PME signaling. In
    particular, on the MSI Wind U-100 PCIe PME interrupts are not
    generated by a PCIe root port after a resume from suspend to RAM, if
    the system wake-up was triggered by a PME from the device attached to
    this port. [It doesn't help to free the interrupt on suspend and
    request it back on resume, even if that is done along with disabling
    the MSI and re-enabling it, respectively.] However, if INTx
    interrupts are used for this purpose on the same machine, everything
    works just fine.

    For this reason, add a kernel command line switch allowing one to
    request that MSIs be not used for the native PCIe PME signaling,
    introduce a DMI table allowing us to blacklist machines that need
    this switch to be set by default and put the MSI Wind U-100 into this
    table.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     
  • PCIe native PME detection mechanism is based on interrupts generated
    by root ports or event collectors every time a PCIe device sends a
    PME message upstream.

    Once a PME message has been sent by an endpoint device and received
    by its root port (or event collector in the case of root complex
    integrated endpoints), the Requester ID from the message header is
    registered in the root port's Root Status register. At the same
    time, the PME Status bit of the Root Status register is set to
    indicate that there's a PME to handle. If PCIe PME interrupt is
    enabled for the root port, it generates an interrupt once the PME
    Status has been set. After receiving the interrupt, the kernel can
    identify the PCIe device that generated the PME using the Requester
    ID from the root port's Root Status register. [For details, see PCI
    Express Base Specification, Rev. 2.0.]

    Implement a driver for the PCIe PME root port service working in
    accordance with the above description.

    Based on a patch from Shaohua Li .

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     

21 Feb, 2010

1 commit

  • Some glibc versions intentionally create lots of alignment faults in
    their gconv code, which if not fixed up, results in segfaults during
    boot. This can prevent systems booting properly.

    There is no clear hard-configurable default for this; the desired
    default depends on the nature of the userspace which is going to be
    booted.

    So, provide a way for the alignment fault handler to be configured via
    the kernel command line.

    Signed-off-by: Russell King

    Russell King