1. 24 Sep, 2012 1 commit
    • Konrad Rzeszutek Wilk's avatar
      xen/boot: Disable NUMA for PV guests. · 8d54db79
      Konrad Rzeszutek Wilk authored
      The hypervisor is in charge of allocating the proper "NUMA" memory
      and dealing with the CPU scheduler to keep them bound to the proper
      NUMA node. The PV guests (and PVHVM) have no inkling of where they
      run and do not need to know that right now. In the future we will
      need to inject NUMA configuration data (if a guest spans two or more
      NUMA nodes) so that the kernel can make the right choices. But those
      patches are not yet present.
      
      In the meantime, disable the NUMA capability in the PV guest, which
      also fixes a bootup issue. Andre says:
      
      "we see Dom0 crashes due to the kernel detecting the NUMA topology not
      by ACPI, but directly from the northbridge (CONFIG_AMD_NUMA).
      
      This will detect the actual NUMA config of the physical machine, but
      will crash about the mismatch with Dom0's virtual memory. Variation of
      the theme: Dom0 sees what it's not supposed to see.
      
      This happens with the said config option enabled and on a machine where
      this scanning is still enabled (K8 and Fam10h, not Bulldozer class)
      
      We have this dump then:
      NUMA: Warning: node ids are out of bound, from=-1 to=-1 distance=10
      Scanning NUMA topology in Northbridge 24
      Number of physical nodes 4
      Node 0 MemBase 0000000000000000 Limit 0000000040000000
      Node 1 MemBase 0000000040000000 Limit 0000000138000000
      Node 2 MemBase 0000000138000000 Limit 00000001f8000000
      Node 3 MemBase 00000001f8000000 Limit 0000000238000000
      Initmem setup node 0 0000000000000000-0000000040000000
        NODE_DATA [000000003ffd9000 - 000000003fffffff]
      Initmem setup node 1 0000000040000000-0000000138000000
        NODE_DATA [0000000137fd9000 - 0000000137ffffff]
      Initmem setup node 2 0000000138000000-00000001f8000000
        NODE_DATA [00000001f095e000 - 00000001f0984fff]
      Initmem setup node 3 00000001f8000000-0000000238000000
      Cannot find 159744 bytes in node 3
      BUG: unable to handle kernel NULL pointer dereference at (null)
      IP: [<ffffffff81d220e6>] __alloc_bootmem_node+0x43/0x96
      Pid: 0, comm: swapper Not tainted 3.3.6 #1 AMD Dinar/Dinar
      RIP: e030:[<ffffffff81d220e6>]  [<ffffffff81d220e6>] __alloc_bootmem_node+0x43/0x96
      .. snip..
        [<ffffffff81d23024>] sparse_early_usemaps_alloc_node+0x64/0x178
        [<ffffffff81d23348>] sparse_init+0xe4/0x25a
        [<ffffffff81d16840>] paging_init+0x13/0x22
        [<ffffffff81d07fbb>] setup_arch+0x9c6/0xa9b
        [<ffffffff81683954>] ? printk+0x3c/0x3e
        [<ffffffff81d01a38>] start_kernel+0xe5/0x468
        [<ffffffff81d012cf>] x86_64_start_reservations+0xba/0xc1
        [<ffffffff81007153>] ? xen_setup_runstate_info+0x2c/0x36
        [<ffffffff81d050ee>] xen_start_kernel+0x565/0x56c
      "
      
      so we just disable NUMA scanning by setting numa_off=1.
      
      CC: stable@vger.kernel.org
      Reported-and-Tested-by: default avatarAndre Przywara <andre.przywara@amd.com>
      Acked-by: default avatarAndre Przywara <andre.przywara@amd.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      8d54db79
  2. 19 Sep, 2012 1 commit
    • Konrad Rzeszutek Wilk's avatar
      xen/boot: Disable BIOS SMP MP table search. · bd49940a
      Konrad Rzeszutek Wilk authored
      As the initial domain we are able to search/map certain regions
      of memory to harvest configuration data. For all low-level we
      use ACPI tables - for interrupts we use exclusively ACPI _PRT
      (so DSDT) and MADT for INT_SRC_OVR.
      
      The SMP MP table is not used at all. As a matter of fact we do
      not even support machines that only have SMP MP but no ACPI tables.
      
      Lets follow how Moorestown does it and just disable searching
      for BIOS SMP tables.
      
      This also fixes an issue on HP Proliant BL680c G5 and DL380 G6:
      
      9f->100 for 1:1 PTE
      Freeing 9f-100 pfn range: 97 pages freed
      1-1 mapping on 9f->100
      .. snip..
      e820: BIOS-provided physical RAM map:
      Xen: [mem 0x0000000000000000-0x000000000009efff] usable
      Xen: [mem 0x000000000009f400-0x00000000000fffff] reserved
      Xen: [mem 0x0000000000100000-0x00000000cfd1dfff] usable
      .. snip..
      Scan for SMP in [mem 0x00000000-0x000003ff]
      Scan for SMP in [mem 0x0009fc00-0x0009ffff]
      Scan for SMP in [mem 0x000f0000-0x000fffff]
      found SMP MP-table at [mem 0x000f4fa0-0x000f4faf] mapped at [ffff8800000f4fa0]
      (XEN) mm.c:908:d0 Error getting mfn 100 (pfn 5555555555555555) from L1 entry 0000000000100461 for l1e_owner=0, pg_owner=0
      (XEN) mm.c:4995:d0 ptwr_emulate: could not get_page_from_l1e()
      BUG: unable to handle kernel NULL pointer dereference at           (null)
      IP: [<ffffffff81ac07e2>] xen_set_pte_init+0x66/0x71
      . snip..
      Pid: 0, comm: swapper Not tainted 3.6.0-rc6upstream-00188-gb6fb969-dirty #2 HP ProLiant BL680c G5
      .. snip..
      Call Trace:
       [<ffffffff81ad31c6>] __early_ioremap+0x18a/0x248
       [<ffffffff81624731>] ? printk+0x48/0x4a
       [<ffffffff81ad32ac>] early_ioremap+0x13/0x15
       [<ffffffff81acc140>] get_mpc_size+0x2f/0x67
       [<ffffffff81acc284>] smp_scan_config+0x10c/0x136
       [<ffffffff81acc2e4>] default_find_smp_config+0x36/0x5a
       [<ffffffff81ac3085>] setup_arch+0x5b3/0xb5b
       [<ffffffff81624731>] ? printk+0x48/0x4a
       [<ffffffff81abca7f>] start_kernel+0x90/0x390
       [<ffffffff81abc356>] x86_64_start_reservations+0x131/0x136
       [<ffffffff81abfa83>] xen_start_kernel+0x65f/0x661
      (XEN) Domain 0 crashed: 'noreboot' set - not rebooting.
      
      which is that ioremap would end up mapping 0xff using _PAGE_IOMAP
      (which is what early_ioremap sticks as a flag) - which meant
      we would get MFN 0xFF (pte ff461, which is OK), and then it would
      also map 0x100 (b/c ioremap tries to get page aligned request, and
      it was trying to map 0xf4fa0 + PAGE_SIZE - so it mapped the next page)
      as _PAGE_IOMAP. Since 0x100 is actually a RAM page, and the _PAGE_IOMAP
      bypasses the P2M lookup we would happily set the PTE to 1000461.
      Xen would deny the request since we do not have access to the
      Machine Frame Number (MFN) of 0x100. The P2M[0x100] is for example
      0x80140.
      
      CC: stable@vger.kernel.org
      Fixes-Oracle-Bugzilla: https://bugzilla.oracle.com/bugzilla/show_bug.cgi?id=13665Acked-by: default avatarJan Beulich <jbeulich@suse.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      bd49940a
  3. 12 Sep, 2012 1 commit
    • Stefano Stabellini's avatar
      xen/m2p: do not reuse kmap_op->dev_bus_addr · 2fc136ee
      Stefano Stabellini authored
      If the caller passes a valid kmap_op to m2p_add_override, we use
      kmap_op->dev_bus_addr to store the original mfn, but dev_bus_addr is
      part of the interface with Xen and if we are batching the hypercalls it
      might not have been written by the hypervisor yet. That means that later
      on Xen will write to it and we'll think that the original mfn is
      actually what Xen has written to it.
      
      Rather than "stealing" struct members from kmap_op, keep using
      page->index to store the original mfn and add another parameter to
      m2p_remove_override to get the corresponding kmap_op instead.
      It is now responsibility of the caller to keep track of which kmap_op
      corresponds to a particular page in the m2p_override (gntdev, the only
      user of this interface that passes a valid kmap_op, is already doing that).
      
      CC: stable@kernel.org
      Reported-and-Tested-By: default avatarSander Eikelenboom <linux@eikelenboom.it>
      Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      2fc136ee
  4. 06 Sep, 2012 1 commit
    • Konrad Rzeszutek Wilk's avatar
      xen/pciback: Fix proper FLR steps. · 80ba77df
      Konrad Rzeszutek Wilk authored
      When we do FLR and save PCI config we did it in the wrong order.
      The end result was that if a PCI device was unbind from
      its driver, then binded to xen-pciback, and then back to its
      driver we would get:
      
      > lspci -s 04:00.0
      04:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
      13:42:12 # 4 :~/
      > echo "0000:04:00.0" > /sys/bus/pci/drivers/pciback/unbind
      > modprobe e1000e
      e1000e: Intel(R) PRO/1000 Network Driver - 2.0.0-k
      e1000e: Copyright(c) 1999 - 2012 Intel Corporation.
      e1000e 0000:04:00.0: Disabling ASPM L0s L1
      e1000e 0000:04:00.0: enabling device (0000 -> 0002)
      xen: registering gsi 48 triggering 0 polarity 1
      Already setup the GSI :48
      e1000e 0000:04:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
      e1000e: probe of 0000:04:00.0 failed with error -2
      
      This fixes it by first saving the PCI configuration space, then
      doing the FLR.
      Reported-by: default avatarRen, Yongjie <yongjie.ren@intel.com>
      Reported-and-Tested-by: default avatarTobias Geiger <tobias.geiger@vido.info>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      CC: stable@vger.kernel.org
      80ba77df
  5. 05 Sep, 2012 4 commits
    • Ronny Hegewald's avatar
      xen: Use correct masking in xen_swiotlb_alloc_coherent. · b5031ed1
      Ronny Hegewald authored
      When running 32-bit pvops-dom0 and a driver tries to allocate a coherent
      DMA-memory the xen swiotlb-implementation returned memory beyond 4GB.
      
      The underlaying reason is that if the supplied driver passes in a
      DMA_BIT_MASK(64) ( hwdev->coherent_dma_mask is set to 0xffffffffffffffff)
      our dma_mask will be u64 set to 0xffffffffffffffff even if we set it to
      DMA_BIT_MASK(32) previously. Meaning we do not reset the upper bits.
      By using the dma_alloc_coherent_mask function - it does the proper casting
      and we get 0xfffffffff.
      
      This caused not working sound on a system with 4 GB and a 64-bit
      compatible sound-card with sets the DMA-mask to 64bit.
      
      On bare-metal and the forward-ported xen-dom0 patches from OpenSuse a coherent
      DMA-memory is always allocated inside the 32-bit address-range by calling
      dma_alloc_coherent_mask.
      
      This patch adds the same functionality to xen swiotlb and is a rebase of the
      original patch from Ronny Hegewald which never got upstream b/c the
      underlaying reason was not understood until now.
      
      The original email with the original patch is in:
      http://old-list-archives.xen.org/archives/html/xen-devel/2010-02/msg00038.html
      the original thread from where the discussion started is in:
      http://old-list-archives.xen.org/archives/html/xen-devel/2010-01/msg00928.htmlSigned-off-by: default avatarRonny Hegewald <ronny.hegewald@online.de>
      Signed-off-by: default avatarStefano Panella <stefano.panella@citrix.com>
      Acked-By: default avatarDavid Vrabel <david.vrabel@citrix.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      CC: stable@vger.kernel.org
      b5031ed1
    • Alex Shi's avatar
      xen: fix logical error in tlb flushing · ce7184bd
      Alex Shi authored
      While TLB_FLUSH_ALL gets passed as 'end' argument to
      flush_tlb_others(), the Xen code was made to check its 'start'
      parameter. That may give a incorrect op.cmd to MMUEXT_INVLPG_MULTI
      instead of MMUEXT_TLB_FLUSH_MULTI. Then it causes some page can not
      be flushed from TLB.
      
      This patch fixed this issue.
      Reported-by: default avatarJan Beulich <jbeulich@suse.com>
      Signed-off-by: default avatarAlex Shi <alex.shi@intel.com>
      Acked-by: default avatarJan Beulich <jbeulich@suse.com>
      Tested-by: default avatarYongjie Ren <yongjie.ren@intel.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      ce7184bd
    • Konrad Rzeszutek Wilk's avatar
      Merge commit '4cb38750' into stable/for-linus-3.6 · 593d0a3e
      Konrad Rzeszutek Wilk authored
      * commit '4cb38750': (6849 commits)
        bcma: fix invalid PMU chip control masks
        [libata] pata_cmd64x: whitespace cleanup
        libata-acpi: fix up for acpi_pm_device_sleep_state API
        sata_dwc_460ex: device tree may specify dma_channel
        ahci, trivial: fixed coding style issues related to braces
        ahci_platform: add hibernation callbacks
        libata-eh.c: local functions should not be exposed globally
        libata-transport.c: local functions should not be exposed globally
        sata_dwc_460ex: support hardreset
        ata: use module_pci_driver
        drivers/ata/pata_pcmcia.c: adjust suspicious bit operation
        pata_imx: Convert to clk_prepare_enable/clk_disable_unprepare
        ahci: Enable SB600 64bit DMA on MSI K9AGM2 (MS-7327) v2
        [libata] Prevent interface errors with Seagate FreeAgent GoFlex
        drivers/acpi/glue: revert accidental license-related 6b66d958 bits
        libata-acpi: add missing inlines in libata.h
        i2c-omap: Add support for I2C_M_STOP message flag
        i2c: Fall back to emulated SMBus if the operation isn't supported natively
        i2c: Add SCCB support
        i2c-tiny-usb: Add support for the Robofuzz OSIF USB/I2C converter
        ...
      593d0a3e
    • Konrad Rzeszutek Wilk's avatar
      xen/p2m: Fix one-off error in checking the P2M tree directory. · 50e90041
      Konrad Rzeszutek Wilk authored
      We would traverse the full P2M top directory (from 0->MAX_DOMAIN_PAGES
      inclusive) when trying to figure out whether we can re-use some of the
      P2M middle leafs.
      
      Which meant that if the kernel was compiled with MAX_DOMAIN_PAGES=512
      we would try to use the 512th entry. Fortunately for us the p2m_top_index
      has a check for this:
      
       BUG_ON(pfn >= MAX_P2M_PFN);
      
      which we hit and saw this:
      
      (XEN) domain_crash_sync called from entry.S
      (XEN) Domain 0 (vcpu#0) crashed on cpu#0:
      (XEN) ----[ Xen-4.1.2-OVM  x86_64  debug=n  Tainted:    C ]----
      (XEN) CPU:    0
      (XEN) RIP:    e033:[<ffffffff819cadeb>]
      (XEN) RFLAGS: 0000000000000212   EM: 1   CONTEXT: pv guest
      (XEN) rax: ffffffff81db5000   rbx: ffffffff81db4000   rcx: 0000000000000000
      (XEN) rdx: 0000000000480211   rsi: 0000000000000000   rdi: ffffffff81db4000
      (XEN) rbp: ffffffff81793db8   rsp: ffffffff81793d38   r8:  0000000008000000
      (XEN) r9:  4000000000000000   r10: 0000000000000000   r11: ffffffff81db7000
      (XEN) r12: 0000000000000ff8   r13: ffffffff81df1ff8   r14: ffffffff81db6000
      (XEN) r15: 0000000000000ff8   cr0: 000000008005003b   cr4: 00000000000026f0
      (XEN) cr3: 0000000661795000   cr2: 0000000000000000
      
      Fixes-Oracle-Bug: 14570662
      CC: stable@vger.kernel.org # only for v3.5
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      50e90041
  6. 23 Aug, 2012 1 commit
    • Konrad Rzeszutek Wilk's avatar
      xen/setup: Fix one-off error when adding for-balloon PFNs to the P2M. · c96aae1f
      Konrad Rzeszutek Wilk authored
      When we are finished with return PFNs to the hypervisor, then
      populate it back, and also mark the E820 MMIO and E820 gaps
      as IDENTITY_FRAMEs, we then call P2M to set areas that can
      be used for ballooning. We were off by one, and ended up
      over-writting a P2M entry that most likely was an IDENTITY_FRAME.
      For example:
      
      1-1 mapping on 40000->40200
      1-1 mapping on bc558->bc5ac
      1-1 mapping on bc5b4->bc8c5
      1-1 mapping on bc8c6->bcb7c
      1-1 mapping on bcd00->100000
      Released 614 pages of unused memory
      Set 277889 page(s) to 1-1 mapping
      Populating 40200-40466 pfn range: 614 pages added
      
      => here we set from 40466 up to bc559 P2M tree to be
      INVALID_P2M_ENTRY. We should have done it up to bc558.
      
      The end result is that if anybody is trying to construct
      a PTE for PFN bc558 they end up with ~PAGE_PRESENT.
      
      CC: stable@vger.kernel.org
      Reported-by-and-Tested-by: default avatarAndre Przywara <andre.przywara@amd.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      c96aae1f
  7. 17 Aug, 2012 1 commit
    • Konrad Rzeszutek Wilk's avatar
      xen/p2m: Reuse existing P2M leafs if they are filled with 1:1 PFNs or INVALID. · 250a41e0
      Konrad Rzeszutek Wilk authored
      If P2M leaf is completly packed with INVALID_P2M_ENTRY or with
      1:1 PFNs (so IDENTITY_FRAME type PFNs), we can swap the P2M leaf
      with either a p2m_missing or p2m_identity respectively. The old
      page (which was created via extend_brk or was grafted on from the
      mfn_list) can be re-used for setting new PFNs.
      
      This also means we can remove git commit:
      5bc6f988
      xen/p2m: Reserve 8MB of _brk space for P2M leafs when populating back
      which tried to fix this.
      
      and make the amount that is required to be reserved much smaller.
      
      CC: stable@vger.kernel.org # for 3.5 only.
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      250a41e0
  8. 16 Aug, 2012 1 commit
  9. 02 Aug, 2012 1 commit
    • Konrad Rzeszutek Wilk's avatar
      xen/p2m: Reserve 8MB of _brk space for P2M leafs when populating back. · 5bc6f988
      Konrad Rzeszutek Wilk authored
      When we release pages back during bootup:
      
      Freeing  9d-100 pfn range: 99 pages freed
      Freeing  9cf36-9d0d2 pfn range: 412 pages freed
      Freeing  9f6bd-9f6bf pfn range: 2 pages freed
      Freeing  9f714-9f7bf pfn range: 171 pages freed
      Freeing  9f7e0-9f7ff pfn range: 31 pages freed
      Freeing  9f800-100000 pfn range: 395264 pages freed
      Released 395979 pages of unused memory
      
      We then try to populate those pages back. In the P2M tree however
      the space for those leafs must be reserved - as such we use extend_brk.
      We reserve 8MB of _brk space, which means we can fit over
      1048576 PFNs - which is more than we should ever need.
      
      Without this, on certain compilation of the kernel we would hit:
      
      (XEN) domain_crash_sync called from entry.S
      (XEN) CPU:    0
      (XEN) RIP:    e033:[<ffffffff818aad3b>]
      (XEN) RFLAGS: 0000000000000206   EM: 1   CONTEXT: pv guest
      (XEN) rax: ffffffff81a7c000   rbx: 000000000000003d   rcx: 0000000000001000
      (XEN) rdx: ffffffff81a7b000   rsi: 0000000000001000   rdi: 0000000000001000
      (XEN) rbp: ffffffff81801cd8   rsp: ffffffff81801c98   r8:  0000000000100000
      (XEN) r9:  ffffffff81a7a000   r10: 0000000000000001   r11: 0000000000000003
      (XEN) r12: 0000000000000004   r13: 0000000000000004   r14: 000000000000003d
      (XEN) r15: 00000000000001e8   cr0: 000000008005003b   cr4: 00000000000006f0
      (XEN) cr3: 0000000125803000   cr2: 0000000000000000
      (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e02b   cs: e033
      (XEN) Guest stack trace from rsp=ffffffff81801c98:
      
      .. which is extend_brk hitting a BUG_ON.
      
      Interestingly enough, most of the time we are not going to hit this
      b/c the _brk space is quite large (v3.5):
       ffffffff81a25000 B __brk_base
       ffffffff81e43000 B __brk_limit
      = ~4MB.
      
      vs earlier kernels (with this back-ported), the space is smaller:
       ffffffff81a25000 B __brk_base
       ffffffff81a7b000 B __brk_limit
      = 344 kBytes.
      
      where we would certainly hit this and hit extend_brk.
      
      Note that git commit c3d93f88
      (xen: populate correct number of pages when across mem boundary (v2))
      exposed this bug).
      
      [v1: Made it 8MB of _brk space instead of 4MB per Jan's suggestion]
      
      CC: stable@vger.kernel.org #only for 3.5
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      5bc6f988
  10. 26 Jul, 2012 14 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4cb38750
      Linus Torvalds authored
      Pull x86/mm changes from Peter Anvin:
       "The big change here is the patchset by Alex Shi to use INVLPG to flush
        only the affected pages when we only need to flush a small page range.
      
        It also removes the special INVALIDATE_TLB_VECTOR interrupts (32
        vectors!) and replace it with an ordinary IPI function call."
      
      Fix up trivial conflicts in arch/x86/include/asm/apic.h (added code next
      to changed line)
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tlb: Fix build warning and crash when building for !SMP
        x86/tlb: do flush_tlb_kernel_range by 'invlpg'
        x86/tlb: replace INVALIDATE_TLB_VECTOR by CALL_FUNCTION_VECTOR
        x86/tlb: enable tlb flush range support for x86
        mm/mmu_gather: enable tlb flush range in generic mmu_gather
        x86/tlb: add tlb_flushall_shift knob into debugfs
        x86/tlb: add tlb_flushall_shift for specific CPU
        x86/tlb: fall back to flush all when meet a THP large page
        x86/flush_tlb: try flush_tlb_single one by one in flush_tlb_range
        x86/tlb_info: get last level TLB entry number of CPU
        x86: Add read_mostly declaration/definition to variables from smp.h
        x86: Define early read-mostly per-cpu macros
      4cb38750
    • Linus Torvalds's avatar
      Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a2fe19c
      Linus Torvalds authored
      Pul x86/efi changes from Ingo Molnar:
       "This tree adds an EFI bootloader handover protocol, which, once
        supported on the bootloader side, will make bootup faster and might
        result in simpler bootloaders.
      
        The other change activates the EFI wall clock time accessors on x86-64
        as well, instead of the legacy RTC readout."
      
      * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, efi: Handover Protocol
        x86-64/efi: Use EFI to deal with platform wall clock
      0a2fe19c
    • Linus Torvalds's avatar
      Merge branches 'x86-cleanups-for-linus' and 'x86-cpufeature-for-linus' of... · c1b669b7
      Linus Torvalds authored
      Merge branches 'x86-cleanups-for-linus' and 'x86-cpufeature-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull x86 cleanup and cpufeature from Ingo Molnar:
       "Just a single cleanup and and a commit that adds new CPU feature
        names"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, boot: Remove ancient, unconditionally #ifdef'd out dead code
      
      * 'x86-cpufeature-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, cpufeature: Add the RDSEED and ADX features
      c1b669b7
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3d72b105
      Linus Torvalds authored
      Pull x86/boot changes from Ingo Molnar:
       "Kernel image size reduction and assorted fixes and other small
        improvements."
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, doc: Assign a bootloader ID for "Minimal Linux Bootloader"
        x86, boot: Exclude cmdline.c if you can't use it
        x86, boot: Exclude early_serial_console.c if can't use it.
        x86, boot: Removed unused debug flag and set code
        x86, boot: Switch output functions from command-line flags to conditional compilation
        x86, boot: Changed error putstr path to match new debug_putstr format
        x86, boot: Wrap debug printing in a new debug_putstr function
        x86, boot: Removed quiet flag and switched quiet output to debug flag
      3d72b105
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 79071638
      Linus Torvalds authored
      Pull scheduler changes from Ingo Molnar:
       "The biggest change is a performance improvement on SMP systems:
      
        | 4 socket 40 core + SMT Westmere box, single 30 sec tbench
        | runs, higher is better:
        |
        | clients     1       2       4        8       16       32       64      128
        |..........................................................................
        | pre        30      41     118      645     3769     6214    12233    14312
        | post      299     603    1211     2418     4697     6847    11606    14557
        |
        | A nice increase in performance.
      
        which speedup is particularly noticeable on heavily interacting
        few-tasks workloads, so the changes should help desktop-style Xorg
        workloads and interactivity as well, on multi-core CPUs.
      
        There are also cpuset suspend behavior fixes/restructuring and various
        smaller tweaks."
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Fix race in task_group()
        sched: Improve balance_cpu() to consider other cpus in its group as target of (pinned) task
        sched: Reset loop counters if all tasks are pinned and we need to redo load balance
        sched: Reorder 'struct lb_env' members to reduce its size
        sched: Improve scalability via 'CPU buddies', which withstand random perturbations
        cpusets: Remove/update outdated comments
        cpusets, hotplug: Restructure functions that are invoked during hotplug
        cpusets, hotplug: Implement cpuset tree traversal in a helper function
        CPU hotplug, cpusets, suspend: Don't modify cpusets during suspend/resume
        sched/x86: Remove broken power estimation
      79071638
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 44a6b844
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
      
       - Fixed algorithm construction hang when self-test fails.
       - Added SHA variants to talitos AEAD list.
       - New driver for Exynos random number generator.
       - Performance enhancements for arc4.
       - Added hwrng support to caam.
       - Added ahash support to caam.
       - Fixed bad kfree in aesni-intel.
       - Allow aesni-intel in FIPS mode.
       - Added atmel driver with support for AES/3DES/SHA.
       - Bug fixes for mv_cesa.
       - CRC hardware driver for BF60x family processors.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (66 commits)
        crypto: twofish-avx - remove useless instruction
        crypto: testmgr - add aead cbc aes hmac sha1,256,512 test vectors
        crypto: talitos - add sha224, sha384 and sha512 to existing AEAD algorithms
        crypto: talitos - export the talitos_submit function
        crypto: talitos - move talitos structures to header file
        crypto: atmel - add new tests to tcrypt
        crypto: atmel - add Atmel SHA1/SHA256 driver
        crypto: atmel - add Atmel DES/TDES driver
        crypto: atmel - add Atmel AES driver
        ARM: AT91SAM9G45: add crypto peripherals
        crypto: testmgr - allow aesni-intel and ghash_clmulni-intel in fips mode
        hwrng: exynos - Add support for Exynos random number generator
        crypto: aesni-intel - fix wrong kfree pointer
        crypto: caam - ERA retrieval and printing for SEC device
        crypto: caam - Using alloc_coherent for caam job rings
        crypto: algapi - Fix hang on crypto allocation
        crypto: arc4 - now arc needs blockcipher support
        crypto: caam - one tasklet per job ring
        crypto: caam - consolidate memory barriers from job ring en/dequeue
        crypto: caam - only query h/w in job ring dequeue path
        ...
      44a6b844
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 945c40c6
      Linus Torvalds authored
      Pull input layer updates from Dmitry Torokhov:
       "First set of updates for the input subsystem.  You will get a new
        touchscreen driver (Melfas mms114), a new keypad driver for LPC32xx
        SoC, large update to Atmel mXT touchscreen driver, a lot of drivers
        acquired device tree support and a slew of other fixes."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (57 commits)
        Input: add MELFAS mms114 touchscreen driver
        Input: add support for key scan interface of the LPC32xx SoC
        Input: omap4-keypad - add device tree support
        Input: hanwang - add support for Art Master II tablet
        Input: spear_keyboard - reconfigure operating frequency on suspend
        Input: spear_keyboard - fix clock handling during suspend/resume
        Input: ff-memless - fix a couple min_t() casts
        Input: synaptics - print firmware ID and board number at init
        Input: spear_keyboard - generalize keyboard frequency configuration
        Input: spear_keyboard - rename bit definitions to reflect register
        Input: spear_keyboard - use correct io accessors
        Input: spear-keyboard - fix disable device_init_wakeup in remove
        Input: wacom_i2c - fix compiler warning
        Input: imx_keypad - check error returned by clk_prepare_enable()
        Input: imx_keypad - adapt the new kpp clock name
        Input: imx_keypad - use clk_prepare_enable/clk_disable_unprepare()
        Input: ad7879 - add option to correct xy axis
        Input: synaptics_usb - Remove TrackPoint name trailing whitespace
        Revert "Input: atmel_mxt_ts - warn if sysfs could not be created"
        Input: MT - Include win8 support
        ...
      945c40c6
    • Linus Torvalds's avatar
      Merge tag 'spi-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc · 0082c16e
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "Since Grant is even more specacularly busy than usual for the time
        being I've been collecting SPI patches for him for this release -
        probably things will revert back to Grant before the next release.
      
        There's nothing too exciting here, mostly it's simple driver specific
        stuff:
      
         - Add spi: to the modaliases of SPI devices to provide namespacing.
         - A driver for AD-FMCOMMS1-EBZ.
         - DT binding for Orion.
         - Fixes and cleanups for i.MX, PL0022, OMAP and bitbang drivers.
      
         There may be a few more fixes I've missed, people keep sending me new
         things."
      
      * tag 'spi-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc:
        spi/orion: remove uneeded spi_info
        spi/bcm63xx: fix clock configuration selection
        spi/orion: add device tree binding
        spi/omap2: mark omap2_mcspi_master_setup as __devinit
        spi: omap2-mcspi: Fix the below warning
        spi: Add AD-FMCOMMS1-EBZ I2C-SPI bridge driver
        spi/imx: use gpio_is_valid to determine if a gpio is valid
        spi/imx: remove redundant config.speed_hz setting
        spi/gpio: start with CS non-active
        spi: tegra: use dmaengine based dma driver
        spi/pl022: cleanup pl022 header documentation
        spi/pl022: enable runtime PM
        spi/pl022: delete DB5500 support
        spi/pl022: disable port when unused
        spi: Add "spi:" prefix to modalias attribute of spi devices
      0082c16e
    • Hauke Mehrtens's avatar
      bcma: fix invalid PMU chip control masks · 1f03bf06
      Hauke Mehrtens authored
      Commit b9562545 ("bcma: complete workaround for BCMA43224 and
      BCM4313") introduced the wrong masks for setting the chip control
      registers - the "mask" parameter is inverse.
      
      It should be the mask of bits *not* changed, which is admittedly a bit
      non-intuitive.
      
      The incorrect mask not only causes the driver to not work correctly on
      the chips affected (eg the BCM43224 on the Macbook Air 4,2) but the
      state persists over a soft reset, causing the next boot to not
      necessarily see the device correctly.
      Reported-and-tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Tested-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Cc: Hauke Mehrtens <hauke@hauke-m.de>
      Cc: Arend Van Spriel <arend@broadcom.com>
      Cc: Pieter-Paul Giesberts <pieterpg@broadcom.com>
      Cc: Brett Rudley <brudley@broadcom.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1f03bf06
    • Linus Torvalds's avatar
      Merge tag 'char-misc-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · b84382f5
      Linus Torvalds authored
      Pull char/misc patches from Greg Kroah-Hartman:
       "Here's the "big" pull request for 3.6-rc1 for the char/misc drivers.
      
        It's really just a few updates to the mei driver, plus 4 other tiny
        patches, nothing big at all.
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      * tag 'char-misc-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        mei: use module_pci_driver
        powerpc/BSR: cleanup the error path of bsr_init
        mei: mei_irq_thread_write_handler - line break fix
        mei: streamline the _mei_irq_thread_close/ioctol functions
        mei: introduce mei_data2slots wrapper
        mei: mei_wd_host_init: update the comment
        mei: remove write only wariable wd_due_counter
        mei: mei_device can be const for mei register access functions
        mei: revamp host buffer interface function
        mei: don't query HCSR for host buffer depth
        mei: group wd_interface_reg with watchdog variables within struct mei_device
        mei: mei_irq_thread_write_handler check for overflow
        mei: make mei_write_message more readable
        mei: check for error codes that mei_flow_ctrl_creds retuns
        misc: at25: Parse dt settings
        misc: hpilo: increase number of max supported channels
        mei: mei.txt: minor grammar fixes
      b84382f5
    • Linus Torvalds's avatar
      Merge tag 'driver-core-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · fa93669a
      Linus Torvalds authored
      Pull driver core changes from Greg Kroah-Hartman:
       "Here's the big driver core pull request for 3.6-rc1.
      
        Unlike 3.5, this kernel should be a lot tamer, with the printk changes
        now settled down.  All we have here is some extcon driver updates, w1
        driver updates, a few printk cleanups that weren't needed for 3.5, but
        are good to have now, and some other minor fixes/changes in the driver
        core.
      
        All of these have been in the linux-next releases for a while now.
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      * tag 'driver-core-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (38 commits)
        printk: Export struct log size and member offsets through vmcoreinfo
        Drivers: hv: Change the hex constant to a decimal constant
        driver core: don't trigger uevent after failure
        extcon: MAX77693: Add extcon-max77693 driver to support Maxim MAX77693 MUIC device
        sysfs: fail dentry revalidation after namespace change fix
        sysfs: fail dentry revalidation after namespace change
        extcon: spelling of detach in function doc
        extcon: arizona: Stop microphone detection if we give up on it
        extcon: arizona: Update cable reporting calls and split headset
        PM / Runtime: Do not increment device usage counts before probing
        kmsg - do not flush partial lines when the console is busy
        kmsg - export "continuation record" flag to /dev/kmsg
        kmsg - avoid warning for CONFIG_PRINTK=n compilations
        kmsg - properly print over-long continuation lines
        driver-core: Use kobj_to_dev instead of re-implementing it
        driver-core: Move kobj_to_dev from genhd.h to device.h
        driver core: Move deferred devices to the end of dpm_list before probing
        driver core: move uevent call to driver_register
        driver core: fix shutdown races with probe/remove(v3)
        Extcon: Arizona: Add driver for Wolfson Arizona class devices
        ...
      fa93669a
    • Linus Torvalds's avatar
      Merge tag 'staging-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · b13bc8dd
      Linus Torvalds authored
      Pull staging tree patches from Greg Kroah-Hartman:
       "Here's the big staging tree merge for the 3.6-rc1 merge window.
      
        There are some patches in here outside of drivers/staging/, notibly
        the iio code (which is still stradeling the staging / not staging
        boundry), the pstore code, and the tracing code.  All of these have
        gotten acks from the various subsystem maintainers to be included in
        this tree.  The pstore and tracing patches are related, and are coming
        here as they replace one of the android staging drivers.
      
        Otherwise, the normal staging mess.  Lots of cleanups and a few new
        drivers (some iio drivers, and the large csr wireless driver
        abomination.)
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      Fixed up trivial conflicts in drivers/staging/comedi/drivers/s626.h and
      drivers/staging/gdm72xx/netlink_k.c
      
      * tag 'staging-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1108 commits)
        staging: csr: delete a bunch of unused library functions
        staging: csr: remove csr_utf16.c
        staging: csr: remove csr_pmem.h
        staging: csr: remove CsrPmemAlloc
        staging: csr: remove CsrPmemFree()
        staging: csr: remove CsrMemAllocDma()
        staging: csr: remove CsrMemCalloc()
        staging: csr: remove CsrMemAlloc()
        staging: csr: remove CsrMemFree() and CsrMemFreeDma()
        staging: csr: remove csr_util.h
        staging: csr: remove CsrOffSetOf()
        stating: csr: remove unneeded #includes in csr_util.c
        staging: csr: make CsrUInt16ToHex static
        staging: csr: remove CsrMemCpy()
        staging: csr: remove CsrStrLen()
        staging: csr: remove CsrVsnprintf()
        staging: csr: remove CsrStrDup
        staging: csr: remove CsrStrChr()
        staging: csr: remove CsrStrNCmp
        staging: csr: remove CsrStrCmp
        ...
      b13bc8dd
    • Linus Torvalds's avatar
      Merge tag 'usb-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 9fc37779
      Linus Torvalds authored
      Pull USB patches from Greg Kroah-Hartman:
       "Here's the big USB patch set for the 3.6-rc1 merge window.
      
        Lots of little changes in here, primarily for gadget controllers and
        drivers.  There's some scsi changes that I think also went in through
        the scsi tree, but they merge just fine.  All of these patches have
        been in the linux-next tree for a while now.
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      Fix up trivial conflicts in include/scsi/scsi_device.h (same libata
      conflict that Jeff had already encountered)
      
      * tag 'usb-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (207 commits)
        usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams
        usb: Add quirk detection based on interface information
        usb: s3c-hsotg: Add header file protection macros in s3c-hsotg.h
        USB: ehci-s5p: Add vbus setup function to the s5p ehci glue layer
        USB: add USB_VENDOR_AND_INTERFACE_INFO() macro
        USB: notify phy when root hub port connect change
        USB: remove 8 bytes of padding from usb_host_interface on 64 bit builds
        USB: option: add ZTE MF821D
        USB: sierra: QMI mode MC7710 moved to qcserial
        USB: qcserial: adding Sierra Wireless devices
        USB: qcserial: support generic Qualcomm serial ports
        USB: qcserial: make probe more flexible
        USB: qcserial: centralize probe exit path
        USB: qcserial: consolidate usb_set_interface calls
        USB: ehci-s5p: Add support for device tree
        USB: ohci-exynos: Add support for device tree
        USB: ehci-omap: fix compile failure(v1)
        usb: host: tegra: pass correct pointer in ehci_setup()
        USB: ehci-fsl: Update ifdef check to work on 64-bit ppc
        USB: serial: keyspan: Removed unrequired parentheses.
        ...
      9fc37779
    • Linus Torvalds's avatar
      Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 5e23ae49
      Linus Torvalds authored
      Pull libata updates from Jeff Garzik:
       "Notable changes:
      
         - Updating libata to directly bind with ACPI / runtime power mgmt.
           This is a pre-req for SATA ZPODD (CD-ROM power management).
      
           Touches ACPI (exports++) and SCSI in minor ways.  Has been in
           linux-next for weeks.
      
           The rest of this should come via SCSI tree, as it involves a lot of
           updates to the 'sr' driver etc.
      
        Other, minor changes:
      
         - module_pci_driver() removes a lot of common boilerplate from each
           PCI driver
      
         - minor coding style, whitespace cleanups
      
         - pata_pcmcia bug fix, caught by Coccinelle
      
         - pata_imx, sata_dwc_460ex minor vendor updates
      
         - ahci_platform: use simple PM ops, and thereby add hibernation cb's
      
         - Add a few device-specific quirks"
      
      * tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: (23 commits)
        [libata] pata_cmd64x: whitespace cleanup
        libata-acpi: fix up for acpi_pm_device_sleep_state API
        sata_dwc_460ex: device tree may specify dma_channel
        ahci, trivial: fixed coding style issues related to braces
        ahci_platform: add hibernation callbacks
        libata-eh.c: local functions should not be exposed globally
        libata-transport.c: local functions should not be exposed globally
        sata_dwc_460ex: support hardreset
        ata: use module_pci_driver
        drivers/ata/pata_pcmcia.c: adjust suspicious bit operation
        pata_imx: Convert to clk_prepare_enable/clk_disable_unprepare
        ahci: Enable SB600 64bit DMA on MSI K9AGM2 (MS-7327) v2
        [libata] Prevent interface errors with Seagate FreeAgent GoFlex
        drivers/acpi/glue: revert accidental license-related 6b66d958 bits
        libata-acpi: add missing inlines in libata.h
        libata: tell scsi layer device supports runtime power off
        libata: detect Device Attention support
        libata-acpi: register/unregister device to/from power resource
        libata-acpi: add ata port runtime D3Cold support
        libata-acpi: set acpi state for SATA port
        ...
      5e23ae49
  11. 25 Jul, 2012 14 commits