]> Git Repo - J-linux.git/commitdiff
Merge tag 'hyperv-next-signed-20220528' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <[email protected]>
Sat, 28 May 2022 18:39:01 +0000 (11:39 -0700)
committerLinus Torvalds <[email protected]>
Sat, 28 May 2022 18:39:01 +0000 (11:39 -0700)
Pull hyperv updates from Wei Liu:

 - Harden hv_sock driver (Andrea Parri)

 - Harden Hyper-V PCI driver (Andrea Parri)

 - Fix multi-MSI for Hyper-V PCI driver (Jeffrey Hugo)

 - Fix Hyper-V PCI to reduce boot time (Dexuan Cui)

 - Remove code for long EOL'ed Hyper-V versions (Michael Kelley, Saurabh
   Sengar)

 - Fix balloon driver error handling (Shradha Gupta)

 - Fix a typo in vmbus driver (Julia Lawall)

 - Ignore vmbus IMC device (Michael Kelley)

 - Add a new error message to Hyper-V DRM driver (Saurabh Sengar)

* tag 'hyperv-next-signed-20220528' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux: (28 commits)
  hv_balloon: Fix balloon_probe() and balloon_remove() error handling
  scsi: storvsc: Removing Pre Win8 related logic
  Drivers: hv: vmbus: fix typo in comment
  PCI: hv: Fix synchronization between channel callback and hv_pci_bus_exit()
  PCI: hv: Add validation for untrusted Hyper-V values
  PCI: hv: Fix interrupt mapping for multi-MSI
  PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
  drm/hyperv: Remove support for Hyper-V 2008 and 2008R2/Win7
  video: hyperv_fb: Remove support for Hyper-V 2008 and 2008R2/Win7
  scsi: storvsc: Remove support for Hyper-V 2008 and 2008R2/Win7
  Drivers: hv: vmbus: Remove support for Hyper-V 2008 and Hyper-V 2008R2/Win7
  x86/hyperv: Disable hardlockup detector by default in Hyper-V guests
  drm/hyperv: Add error message for fb size greater than allocated
  PCI: hv: Do not set PCI_COMMAND_MEMORY to reduce VM boot time
  PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
  Drivers: hv: vmbus: Refactor the ring-buffer iterator functions
  Drivers: hv: vmbus: Accept hv_sock offers in isolated guests
  hv_sock: Add validation for untrusted Hyper-V values
  hv_sock: Copy packets sent by Hyper-V out of the ring buffer
  hv_sock: Check hv_pkt_iter_first_raw()'s return value
  ...

1  2 
arch/x86/kernel/cpu/mshyperv.c
drivers/video/fbdev/hyperv_fb.c

index 5b8f2c357160116335a93a1dd30947602a642a1e,16dad62c8155b01031fe17b3906d755bb879736b..831613959a92af177a621ce507d18f671daeed86
@@@ -337,6 -337,14 +337,6 @@@ static void __init ms_hyperv_init_platf
                        swiotlb_unencrypted_base = ms_hyperv.shared_gpa_boundary;
  #endif
                }
 -
 -#ifdef CONFIG_SWIOTLB
 -              /*
 -               * Enable swiotlb force mode in Isolation VM to
 -               * use swiotlb bounce buffer for dma transaction.
 -               */
 -              swiotlb_force = SWIOTLB_FORCE;
 -#endif
                /* Isolation VMs are unenlightened SEV-based VMs, thus this check: */
                if (IS_ENABLED(CONFIG_AMD_MEM_ENCRYPT)) {
                        if (hv_get_isolation_type() != HV_ISOLATION_TYPE_NONE)
         */
        if (!(ms_hyperv.features & HV_ACCESS_TSC_INVARIANT))
                mark_tsc_unstable("running on Hyper-V");
+       hardlockup_detector_disable();
  }
  
  static bool __init ms_hyperv_x2apic_available(void)
index 8359a513b600f1ab02b536994df6fb4992d081d0,7563d54a9d41cdaf991195ef4a2c1c9a1366e613..18dc2fce649db8576e0f9f4f6647ad84ae934ad8
@@@ -63,6 -63,7 +63,7 @@@
  #define MAX_VMBUS_PKT_SIZE 0x4000
  
  #define SYNTHVID_VERSION(major, minor) ((minor) << 16 | (major))
+ /* Support for VERSION_WIN7 is removed. #define is retained for reference. */
  #define SYNTHVID_VERSION_WIN7 SYNTHVID_VERSION(3, 0)
  #define SYNTHVID_VERSION_WIN8 SYNTHVID_VERSION(3, 2)
  #define SYNTHVID_VERSION_WIN10 SYNTHVID_VERSION(3, 5)
  #define SYNTHVID_VER_GET_MAJOR(ver) (ver & 0x0000ffff)
  #define SYNTHVID_VER_GET_MINOR(ver) ((ver & 0xffff0000) >> 16)
  
- #define SYNTHVID_DEPTH_WIN7 16
  #define SYNTHVID_DEPTH_WIN8 32
- #define SYNTHVID_FB_SIZE_WIN7 (4 * 1024 * 1024)
- #define SYNTHVID_WIDTH_MAX_WIN7 1600
- #define SYNTHVID_HEIGHT_MAX_WIN7 1200
  #define SYNTHVID_FB_SIZE_WIN8 (8 * 1024 * 1024)
  
  #define PCI_VENDOR_ID_MICROSOFT 0x1414
@@@ -420,10 -415,11 +415,10 @@@ static void hvfb_docopy(struct hvfb_pa
  }
  
  /* Deferred IO callback */
 -static void synthvid_deferred_io(struct fb_info *p,
 -                               struct list_head *pagelist)
 +static void synthvid_deferred_io(struct fb_info *p, struct list_head *pagereflist)
  {
        struct hvfb_par *par = p->par;
 -      struct page *page;
 +      struct fb_deferred_io_pageref *pageref;
        unsigned long start, end;
        int y1, y2, miny, maxy;
  
         * in synthvid_update function by clamping the y2
         * value to yres.
         */
 -      list_for_each_entry(page, pagelist, lru) {
 -              start = page->index << PAGE_SHIFT;
 +      list_for_each_entry(pageref, pagereflist, list) {
 +              start = pageref->offset;
                end = start + PAGE_SIZE - 1;
                y1 = start / p->fix.line_length;
                y2 = end / p->fix.line_length;
@@@ -643,12 -639,6 +638,6 @@@ static int synthvid_connect_vsp(struct 
        case VERSION_WIN8:
        case VERSION_WIN8_1:
                ret = synthvid_negotiate_ver(hdev, SYNTHVID_VERSION_WIN8);
-               if (!ret)
-                       break;
-               fallthrough;
-       case VERSION_WS2008:
-       case VERSION_WIN7:
-               ret = synthvid_negotiate_ver(hdev, SYNTHVID_VERSION_WIN7);
                break;
        default:
                ret = synthvid_negotiate_ver(hdev, SYNTHVID_VERSION_WIN10);
                goto error;
        }
  
-       if (par->synthvid_version == SYNTHVID_VERSION_WIN7)
-               screen_depth = SYNTHVID_DEPTH_WIN7;
-       else
-               screen_depth = SYNTHVID_DEPTH_WIN8;
+       screen_depth = SYNTHVID_DEPTH_WIN8;
        if (synthvid_ver_ge(par->synthvid_version, SYNTHVID_VERSION_WIN10)) {
                ret = synthvid_get_supported_resolution(hdev);
                if (ret)
@@@ -908,7 -894,6 +893,7 @@@ static const struct fb_ops hvfb_ops = 
        .fb_copyarea = hvfb_cfb_copyarea,
        .fb_imageblit = hvfb_cfb_imageblit,
        .fb_blank = hvfb_blank,
 +      .fb_mmap = fb_deferred_io_mmap,
  };
  
  
@@@ -933,9 -918,7 +918,7 @@@ static void hvfb_get_option(struct fb_i
            (synthvid_ver_ge(par->synthvid_version, SYNTHVID_VERSION_WIN10) &&
            (x * y * screen_depth / 8 > screen_fb_size)) ||
            (par->synthvid_version == SYNTHVID_VERSION_WIN8 &&
-            x * y * screen_depth / 8 > SYNTHVID_FB_SIZE_WIN8) ||
-           (par->synthvid_version == SYNTHVID_VERSION_WIN7 &&
-            (x > SYNTHVID_WIDTH_MAX_WIN7 || y > SYNTHVID_HEIGHT_MAX_WIN7))) {
+            x * y * screen_depth / 8 > SYNTHVID_FB_SIZE_WIN8)) {
                pr_err("Screen resolution option is out of range: skipped\n");
                return;
        }
This page took 0.070758 seconds and 4 git commands to generate.