1. 27 7月, 2016 5 次提交
  2. 25 7月, 2016 2 次提交
    • V
      x86/xen: use xen_vcpu_id mapping for HYPERVISOR_vcpu_op · ad5475f9
      Vitaly Kuznetsov 提交于
      HYPERVISOR_vcpu_op() passes Linux's idea of vCPU id as a parameter
      while Xen's idea is expected. In some cases these ideas diverge so we
      need to do remapping.
      
      Convert all callers of HYPERVISOR_vcpu_op() to use xen_vcpu_nr().
      
      Leave xen_fill_possible_map() and xen_filter_cpu_maps() intact as
      they're only being called by PV guests before perpu areas are
      initialized. While the issue could be solved by switching to
      early_percpu for xen_vcpu_id I think it's not worth it: PV guests will
      probably never get to the point where their idea of vCPU id diverges
      from Xen's.
      Signed-off-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      ad5475f9
    • V
      xen: introduce xen_vcpu_id mapping · 88e957d6
      Vitaly Kuznetsov 提交于
      It may happen that Xen's and Linux's ideas of vCPU id diverge. In
      particular, when we crash on a secondary vCPU we may want to do kdump
      and unlike plain kexec where we do migrate_to_reboot_cpu() we try
      booting on the vCPU which crashed. This doesn't work very well for
      PVHVM guests as we have a number of hypercalls where we pass vCPU id
      as a parameter. These hypercalls either fail or do something
      unexpected.
      
      To solve the issue introduce percpu xen_vcpu_id mapping. ARM and PV
      guests get direct mapping for now. Boot CPU for PVHVM guest gets its
      id from CPUID. With secondary CPUs it is a bit more
      trickier. Currently, we initialize IPI vectors before these CPUs boot
      so we can't use CPUID. Use ACPI ids from MADT instead.
      Signed-off-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      88e957d6
  3. 23 7月, 2016 1 次提交
  4. 21 7月, 2016 1 次提交
  5. 19 7月, 2016 1 次提交
  6. 18 7月, 2016 2 次提交
  7. 15 7月, 2016 4 次提交
  8. 14 7月, 2016 9 次提交
  9. 13 7月, 2016 1 次提交
  10. 12 7月, 2016 1 次提交
  11. 11 7月, 2016 1 次提交
    • A
      ARM: tegra: Remove board_init_funcs array · da35cbca
      Arnd Bergmann 提交于
      In a configuration that enables CONFIG_UBSAN_SANITIZE_ALL, I am getting
      a section mismatch warning for tegra20:
      
      WARNING: arch/arm/mach-tegra/built-in.o(.data+0x6e0): Section mismatch in reference from the variable board_init_funcs to the function .init.text:paz00_init()
      
      The array is no longer useful here since there is only one entry,
      so we can simply call the function directly after checking
      of_machine_is_compatible(). This fixes the section mismatch
      and is easier to read.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      da35cbca
  12. 08 7月, 2016 1 次提交
  13. 07 7月, 2016 2 次提交
  14. 06 7月, 2016 7 次提交
  15. 02 7月, 2016 2 次提交
    • M
      ARM: 8577/1: Fix Cortex-A15 798181 errata initialization · f6492164
      Matija Glavinic Pecotic 提交于
      Current errata initialization doesn't take properly revision and REVIDR
      into account. Depending on the core revision, revidr bits should not be
      taken into account. Errata misleadingly declares r3p3 to be error-free,
      but this is not the case. Include rp3p3 in errata initialization.
      
      Here are possible fixes defined in revidr register for r2 and r3 [1,2]:
      
      r0p0-r2p1: No fixes applied
      
      r2p2,r2p3:
      
      REVIDR[4]: 798181 Moving a virtual page that is being accessed by
          an active process can lead to unexpected behavior
      REVIDR[9]: Not defined
      
      r2p4,r3p0,r3p1,r3p2:
      
      REVIDR[4]: 798181 Moving a virtual page that is being accessed by
         an active process can lead to unexpected behavior
      REVIDR[9]: 798181 Moving a virtual page that is being accessed by
         an active process can lead to unexpected behavior
         - This is an update to a previously released ECO.
      
      r3p3:
      
      REVIDR[4]: Reserved
      REVIDR[9]: 798181 Moving a virtual page that is being accessed by
         an active process can lead to unexpected behavior
         - This is an update to a previously released ECO.
      
      And here is proposed handling from the same document:
      
      * In r3p2 and earlier versions with REVIDR[4]= 0,the full workaround is
        required.
      * In r3p2 and earlier versions with REVIDR[4]=1, REVIDR[9]=0, only the
        portion of the workaround up to the end of step 6 is required.
      * In r3p2 and earlier versions with REVIDR[4]=1, REVIDR[9]=1, no
        workaround is required.
      * In r3p3, if REVIDR[9]=0, only the portion of the workaround up
        to the end of step 6 is required.
      * In r3p3, if REVIDR[9]=1, no workaround is required.
      
      These imply following:
      
      REVIDR[9] set -> No WA
      REVIDR[4] set, REVIDR[9] cleared -> Partial WA
      Both cleared -> Full WA
      
      Where certain bits should and should not be taken into account
      depending on whether they are defined for the revision.
      
      Although not explicitly mentioned in the errata note, REVIDR[9] set,
      with REVIDR[4] cleared is valid combination which requires no WA. This
      is confirmed by ARM support and errata will be updated.
      
      [1] ARM CortexTM-A15 MPCore - NEON
          Product revision r3
          Software Developers Errata Notice
          ARM-EPM-028093 v20.0 Released
      
      [2] ARM CortexTM-A15 MPCore - NEON
          Product Revision r2
          Software Developers Errata Notice
          ARM-EPM-028090 v19.3 Released
      Signed-off-by: NMatija Glavinic Pecotic <matija.glavinic-pecotic.ext@nokia.com>
      Reviewed-by: NAlexander Sverdlin <alexander.sverdlin@nokia.com>
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      f6492164
    • A
      ARM: 8584/1: floppy: avoid gcc-6 warning · dd665be0
      Arnd Bergmann 提交于
      gcc-6.0 warns about comparisons between two identical expressions,
      which is what we get in the floppy driver when writing to the FD_DOR
      register:
      
      drivers/block/floppy.c: In function 'set_dor':
      drivers/block/floppy.c:810:44: error: self-comparison always evaluates to true [-Werror=tautological-compare]
         fd_outb(newdor, FD_DOR);
      
      It would be nice to use a static inline function instead of the
      macro, to avoid the warning, but we cannot do that because the
      FD_DOR definition is incomplete at this point.
      
      Adding a cast to (u32) is a harmless way to shut up the warning,
      just not very nice.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      dd665be0