]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
Merge tag 'for-linus-4.4-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 18 Dec 2015 20:24:52 +0000 (12:24 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 18 Dec 2015 20:24:52 +0000 (12:24 -0800)
Pull xen bug fixes from David Vrabel:
 - XSA-155 security fixes to backend drivers.
 - XSA-157 security fixes to pciback.

* tag 'for-linus-4.4-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen-pciback: fix up cleanup path when alloc fails
  xen/pciback: Don't allow MSI-X ops if PCI_COMMAND_MEMORY is not set.
  xen/pciback: For XEN_PCI_OP_disable_msi[|x] only disable if device has MSI(X) enabled.
  xen/pciback: Do not install an IRQ handler for MSI interrupts.
  xen/pciback: Return error on XEN_PCI_OP_enable_msix when device has MSI or MSI-X enabled
  xen/pciback: Return error on XEN_PCI_OP_enable_msi when device has MSI or MSI-X enabled
  xen/pciback: Save xen_pci_op commands before processing it
  xen-scsiback: safely copy requests
  xen-blkback: read from indirect descriptors only once
  xen-blkback: only read request operation from shared ring once
  xen-netback: use RING_COPY_REQUEST() throughout
  xen-netback: don't use last request to determine minimum Tx credit
  xen: Add RING_COPY_REQUEST()
  xen/x86/pvh: Use HVM's flush_tlb_others op
  xen: Resume PMU from non-atomic context
  xen/events/fifo: Consume unprocessed events when a CPU dies

1  2 
drivers/xen/xen-scsiback.c

index 43bcae852546ad2e5021b4a1d326dda375ae4023,2af9aa8f9b9386e0782252ed406db2efe3c77ea9..ad4eb1024d1ffb7663db4e770fdd4c5c2663e821
@@@ -53,6 -53,7 +53,6 @@@
  
  #include <target/target_core_base.h>
  #include <target/target_core_fabric.h>
 -#include <target/target_core_fabric_configfs.h>
  
  #include <asm/hypervisor.h>
  
@@@ -726,7 -727,7 +726,7 @@@ static int scsiback_do_cmd_fn(struct vs
                if (!pending_req)
                        return 1;
  
-               ring_req = *RING_GET_REQUEST(ring, rc);
+               RING_COPY_REQUEST(ring, rc, &ring_req);
                ring->req_cons = ++rc;
  
                err = prepare_pending_reqs(info, &ring_req, pending_req);
@@@ -1437,10 -1438,9 +1437,10 @@@ static void scsiback_aborted_task(struc
  {
  }
  
 -static ssize_t scsiback_tpg_param_show_alias(struct se_portal_group *se_tpg,
 +static ssize_t scsiback_tpg_param_alias_show(struct config_item *item,
                                             char *page)
  {
 +      struct se_portal_group *se_tpg = param_to_tpg(item);
        struct scsiback_tpg *tpg = container_of(se_tpg, struct scsiback_tpg,
                                                se_tpg);
        ssize_t rb;
        return rb;
  }
  
 -static ssize_t scsiback_tpg_param_store_alias(struct se_portal_group *se_tpg,
 +static ssize_t scsiback_tpg_param_alias_store(struct config_item *item,
                                              const char *page, size_t count)
  {
 +      struct se_portal_group *se_tpg = param_to_tpg(item);
        struct scsiback_tpg *tpg = container_of(se_tpg, struct scsiback_tpg,
                                                se_tpg);
        int len;
        return count;
  }
  
 -TF_TPG_PARAM_ATTR(scsiback, alias, S_IRUGO | S_IWUSR);
 +CONFIGFS_ATTR(scsiback_tpg_param_, alias);
  
  static struct configfs_attribute *scsiback_param_attrs[] = {
 -      &scsiback_tpg_param_alias.attr,
 +      &scsiback_tpg_param_attr_alias,
        NULL,
  };
  
@@@ -1586,9 -1585,9 +1586,9 @@@ static int scsiback_drop_nexus(struct s
        return 0;
  }
  
 -static ssize_t scsiback_tpg_show_nexus(struct se_portal_group *se_tpg,
 -                                      char *page)
 +static ssize_t scsiback_tpg_nexus_show(struct config_item *item, char *page)
  {
 +      struct se_portal_group *se_tpg = to_tpg(item);
        struct scsiback_tpg *tpg = container_of(se_tpg,
                                struct scsiback_tpg, se_tpg);
        struct scsiback_nexus *tv_nexus;
        return ret;
  }
  
 -static ssize_t scsiback_tpg_store_nexus(struct se_portal_group *se_tpg,
 -                                       const char *page,
 -                                       size_t count)
 +static ssize_t scsiback_tpg_nexus_store(struct config_item *item,
 +              const char *page, size_t count)
  {
 +      struct se_portal_group *se_tpg = to_tpg(item);
        struct scsiback_tpg *tpg = container_of(se_tpg,
                                struct scsiback_tpg, se_tpg);
        struct scsiback_tport *tport_wwn = tpg->tport;
@@@ -1682,25 -1681,26 +1682,25 @@@ check_newline
        return count;
  }
  
 -TF_TPG_BASE_ATTR(scsiback, nexus, S_IRUGO | S_IWUSR);
 +CONFIGFS_ATTR(scsiback_tpg_, nexus);
  
  static struct configfs_attribute *scsiback_tpg_attrs[] = {
 -      &scsiback_tpg_nexus.attr,
 +      &scsiback_tpg_attr_nexus,
        NULL,
  };
  
  static ssize_t
 -scsiback_wwn_show_attr_version(struct target_fabric_configfs *tf,
 -                              char *page)
 +scsiback_wwn_version_show(struct config_item *item, char *page)
  {
        return sprintf(page, "xen-pvscsi fabric module %s on %s/%s on "
                UTS_RELEASE"\n",
                VSCSI_VERSION, utsname()->sysname, utsname()->machine);
  }
  
 -TF_WWN_ATTR_RO(scsiback, version);
 +CONFIGFS_ATTR_RO(scsiback_wwn_, version);
  
  static struct configfs_attribute *scsiback_wwn_attrs[] = {
 -      &scsiback_wwn_version.attr,
 +      &scsiback_wwn_attr_version,
        NULL,
  };