From: Dietmar Maurer Date: Sun, 18 Dec 2016 13:56:39 +0000 (+0100) Subject: update to kernel-3.10.0-514.el7.src.rpm, bump api to 22-pve X-Git-Url: https://git.proxmox.com/?p=pve-kernel-3.10.0.git;a=commitdiff_plain;h=76165ca8e48438818040ddedfd18f637802d8ddd update to kernel-3.10.0-514.el7.src.rpm, bump api to 22-pve --- diff --git a/CVE-2016-5195.patch b/CVE-2016-5195.patch deleted file mode 100644 index 2805cc1..0000000 --- a/CVE-2016-5195.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619 Mon Sep 17 00:00:00 2001 -From: Linus Torvalds -Date: Thu, 13 Oct 2016 13:07:36 -0700 -Subject: mm: remove gup_flags FOLL_WRITE games from __get_user_pages() - -This is an ancient bug that was actually attempted to be fixed once -(badly) by me eleven years ago in commit 4ceb5db9757a ("Fix -get_user_pages() race for write access") but that was then undone due to -problems on s390 by commit f33ea7f404e5 ("fix get_user_pages bug"). - -In the meantime, the s390 situation has long been fixed, and we can now -fix it by checking the pte_dirty() bit properly (and do it better). The -s390 dirty bit was implemented in abf09bed3cce ("s390/mm: implement -software dirty bits") which made it into v3.9. Earlier kernels will -have to look at the page state itself. - -Also, the VM has become more scalable, and what used a purely -theoretical race back then has become easier to trigger. - -To fix it, we introduce a new internal FOLL_COW flag to mark the "yes, -we already did a COW" rather than play racy games with FOLL_WRITE that -is very fundamental, and then use the pte dirty flag to validate that -the FOLL_COW flag is still valid. - -Reported-and-tested-by: Phil "not Paul" Oester -Acked-by: Hugh Dickins -Reviewed-by: Michal Hocko -Cc: Andy Lutomirski -Cc: Kees Cook -Cc: Oleg Nesterov -Cc: Willy Tarreau -Cc: Nick Piggin -Cc: Greg Thelen -Cc: stable@vger.kernel.org -Signed-off-by: Linus Torvalds ---- - include/linux/mm.h | 1 + - mm/memory.c | 15 ++++++++++++-- - 2 files changed, 14 insertions(+), 2 deletions(-) - -diff --git a/include/linux/mm.h b/include/linux/mm.h -index e9caec6..ed85879 100644 ---- a/include/linux/mm.h -+++ b/include/linux/mm.h -@@ -1971,6 +1971,7 @@ static inline struct page *follow_page(struct vm_area_struct *vma, - #define FOLL_NUMA 0x200 /* force NUMA hinting page fault */ - #define FOLL_MIGRATION 0x400 /* wait for page to replace migration entry */ - #define FOLL_TRIED 0x800 /* a retry, previous pass started an IO */ -+#define FOLL_COW 0x4000 /* internal GUP flag */ - - typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr, - void *data); -diff --git a/mm/memory.c b/mm/memory.c -index fce5131..f62b9f7 100644 ---- a/mm/memory.c -+++ b/mm/memory.c -@@ -1467,6 +1467,17 @@ int zap_vma_ptes(struct vm_area_struct *vma, unsigned long address, - } - EXPORT_SYMBOL_GPL(zap_vma_ptes); - -+/* -+ * FOLL_FORCE can write to even unwritable pte's, but only -+ * after we've gone through a COW cycle and they are dirty. -+ */ -+static inline bool can_follow_write_pte(pte_t pte, unsigned int flags) -+{ -+ return pte_write(pte) || -+ ((flags & FOLL_FORCE) && (flags & FOLL_COW) && pte_dirty(pte)); -+} -+ -+ - /** - * follow_page_mask - look up a page descriptor from a user-virtual address - * @vma: vm_area_struct mapping @address -@@ -1588,7 +1599,7 @@ split_fallthrough: - } - if ((flags & FOLL_NUMA) && pte_numa(pte)) - goto no_page; -- if ((flags & FOLL_WRITE) && !pte_write(pte)) -+ if ((flags & FOLL_WRITE) && !can_follow_write_pte(pte, flags)) - goto unlock; - - page = vm_normal_page(vma, address, pte); -@@ -1900,7 +1911,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, - */ - if ((ret & VM_FAULT_WRITE) && - !(vma->vm_flags & VM_WRITE)) -- foll_flags &= ~FOLL_WRITE; -+ foll_flags |= FOLL_COW; - - cond_resched(); - } diff --git a/Makefile b/Makefile index 2d51173..8401dd7 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,12 @@ RELEASE=3.4 KERNEL_VER=3.10.0 -PKGREL=50 +PKGREL=51 # also include firmware of previous versrion into # the fw package: fwlist-2.6.32-PREV-pve -KREL=21 +KREL=22 -RHKVER=327.36.2.el7 +RHKVER=514.el7 KERNELSRCRPM=kernel-${KERNEL_VER}-${RHKVER}.src.rpm @@ -27,19 +27,19 @@ KERNEL_CFG=config-${KERNEL_VER} KERNEL_CFG_ORG=${RHKERSRCDIR}/kernel-${KERNEL_VER}-x86_64.config FW_VER=1.1 -FW_REL=5 +FW_REL=6 FW_DEB=pve-firmware_${FW_VER}-${FW_REL}_all.deb -E1000EDIR=e1000e-3.3.5 +E1000EDIR=e1000e-3.3.5.3 E1000ESRC=${E1000EDIR}.tar.gz -IGBDIR=igb-5.3.5.3 +IGBDIR=igb-5.3.5.4 IGBSRC=${IGBDIR}.tar.gz -IXGBEDIR=ixgbe-4.3.15 +IXGBEDIR=ixgbe-4.5.4 IXGBESRC=${IXGBEDIR}.tar.gz -I40EDIR=i40e-1.5.22 +I40EDIR=i40e-1.5.25 I40ESRC=${I40EDIR}.tar.gz # does not compile with RHEL 7.2 (=327.3.1.el7) @@ -180,20 +180,19 @@ ${KERNEL_SRC}/README: ${KERNEL_SRC}.org/README #cd ${KERNEL_SRC}; patch -p1 <../do-not-use-barrier-on-ext3.patch cd ${KERNEL_SRC}; patch -p1 <../bridge-patch.diff cd ${KERNEL_SRC}; patch -p1 <../bridge-forward-ipv6-neighbor-solicitation.patch - cd ${KERNEL_SRC}; patch -p1 <../kvmstealtime.patch #cd ${KERNEL_SRC}; patch -p1 <../kvm-fix-invalid-secondary-exec-controls.patch #cd ${KERNEL_SRC}; patch -p1 <../fix-aspm-policy.patch #cd ${KERNEL_SRC}; patch -p1 <../kbuild-generate-mudules-builtin.patch #cd ${KERNEL_SRC}; patch -p1 <../add-tiocgdev-ioctl.patch #cd ${KERNEL_SRC}; patch -p1 <../fix-nfs-block-count.patch #cd ${KERNEL_SRC}; patch -p1 <../fix-idr-header-for-drbd-compilation.patch - cd ${KERNEL_SRC}; patch -p1 <../add-empty-ndo_poll_controller-to-veth.patch + #cd ${KERNEL_SRC}; patch -p1 <../add-empty-ndo_poll_controller-to-veth.patch # cd ${KERNEL_SRC}; patch -p1 <../override_for_missing_acs_capabilities.patch - cd ${KERNEL_SRC}; patch -p1 <../vhost-net-extend-device-allocation-to-vmalloc.patch cp ${KERNEL_SRC}/drivers/vhost/scsi.c ${KERNEL_SRC}/drivers/vhost/scsi.c.backup # vhost-scsi compile fixes cd ${KERNEL_SRC}; patch -p1 <../vhost-scsi-fixes.patch - cd ${KERNEL_SRC}; patch -p1 <../CVE-2016-5195.patch + # nbd compile fix + cd ${KERNEL_SRC}; patch -p1 <../nbd-rename-REQ_TYPE_SPECIAL.patch sed -i ${KERNEL_SRC}/Makefile -e 's/^EXTRAVERSION.*$$/EXTRAVERSION=${EXTRAVERSION}/' touch $@ diff --git a/assemble-firmware.pl b/assemble-firmware.pl index d4e64bf..0fe5261 100755 --- a/assemble-firmware.pl +++ b/assemble-firmware.pl @@ -165,6 +165,27 @@ brcm/brcmfmac43430-sdio.txt brcm/brcmfmac43430-sdio.bin brcm/brcmfmac43340-sdio.txt +mrvl/sd8997_uapsta.bin +mrvl/usb8997_uapsta.bin +cxgb4/t6fw.bin +wil6210.brd +ath10k/QCA6174/hw3.0/firmware-5.bin +ath10k/QCA6174/hw2.1/firmware-4.bin +ath10k/QCA988X/hw2.0/board-2.bin +ath10k/QCA988X/hw2.0/firmware-3.bin +ath10k/QCA988X/hw2.0/firmware-2.bin +iwlwifi-6000g2b-IWL6000G2B_UCODE_API_MAX.ucode +iwlwifi-6000-6.ucode +iwlwifi-8000C--21.ucode +iwlwifi-9260-th-a0-lc-a0--21.ucode +iwlwifi-9260-th-a0-jf-a0--21.ucode +iwlwifi-9000-pu-a0-lc-a0--21.ucode +brcm/brcmfmac4356-sdio.bin +brcm/brcmfmac4366c-pcie.bin +brcm/brcmfmac4365b-pcie.bin +brcm/brcmfmac4359-pcie.bin +brcm/brcmfmac4358-pcie.bi +brcm/brcmfmac4358-pcie.bin )) { $skip->{$fw} = 1; diff --git a/changelog.Debian b/changelog.Debian index 672a2cf..211dc41 100644 --- a/changelog.Debian +++ b/changelog.Debian @@ -1,3 +1,29 @@ +pve-kernel-3.10.0 (3.10.0-51) unstable; urgency=low + + * update to kernel-3.10.0-514.el7.src.rpm + + * bump api to 22-pve + + * remove kvmstealtime.patch (upstream) + + * remove vhost-net-extend-device-allocation-to-vmalloc.patch (upstream) + + * remove CVE-2016-5195.patch (upstream) + + * disabled add-empty-ndo_poll_controller-to-veth.patch (does not apply) + + * ndb: nbd-rename-REQ_TYPE_SPECIAL.patch (fix compile error) + + * update e1000e to 3.3.5.3 + + * update igb to 5.3.5.4 + + * update i40e to 1.5.25 + + * update ixgbe to 4.5.4 + + -- Proxmox Support Team Sun, 18 Dec 2016 14:56:16 +0100 + pve-kernel-3.10.0 (3.10.0-50) unstable; urgency=low * update to kernel-3.10.0-327.36.2.el7.src.rpm diff --git a/changelog.firmware b/changelog.firmware index 4564edb..8718276 100644 --- a/changelog.firmware +++ b/changelog.firmware @@ -1,3 +1,9 @@ +pve-firmware (1.1-6) unstable; urgency=low + + * updates for latest 3.10.0 kernel + + -- Proxmox Support Team Mon, 19 Dec 2016 06:47:50 +0100 + pve-firmware (1.1-4) unstable; urgency=medium * updates for latest 3.10.0 kernel diff --git a/config-3.10.0.diff b/config-3.10.0.diff index 210631f..ea77708 100644 --- a/config-3.10.0.diff +++ b/config-3.10.0.diff @@ -1,5 +1,5 @@ ---- rh-kernel-src/kernel-3.10.0-x86_64.config 2015-03-14 10:29:17.996963858 +0100 -+++ config-3.10.0.new 2015-03-14 11:28:50.364833361 +0100 +--- rh-kernel-src/kernel-3.10.0-x86_64.config 2016-12-18 14:59:46.000000000 +0100 ++++ config-3.10.0.new 2016-12-18 15:14:10.000000000 +0100 @@ -1,7 +1,6 @@ -# x86_64 # @@ -9,7 +9,7 @@ # CONFIG_64BIT=y CONFIG_X86_64=y -@@ -264,8 +263,8 @@ +@@ -274,8 +273,8 @@ CONFIG_HAVE_CC_STACKPROTECTOR=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set @@ -20,7 +20,7 @@ CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y -@@ -289,16 +288,7 @@ +@@ -302,16 +301,7 @@ # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y @@ -38,7 +38,7 @@ CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_BLK_DEV_BSG=y -@@ -595,9 +585,9 @@ +@@ -621,9 +611,9 @@ CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y @@ -50,7 +50,7 @@ # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y -@@ -1146,10 +1136,10 @@ +@@ -1195,10 +1185,10 @@ CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m @@ -63,7 +63,7 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y -@@ -1157,7 +1147,7 @@ +@@ -1206,7 +1196,7 @@ CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y # CONFIG_DECNET is not set @@ -72,7 +72,7 @@ # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set -@@ -1456,10 +1446,11 @@ +@@ -1594,10 +1584,11 @@ # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m @@ -84,10 +84,10 @@ +CONFIG_BLK_DEV_DRBD=m +# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_BLK_DEV_NBD=m - CONFIG_BLK_DEV_NVME=m CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_SX8=m -@@ -1554,10 +1545,10 @@ + CONFIG_BLK_DEV_RAM=m +@@ -1702,10 +1693,10 @@ # # SCSI support type (disk, tape, CD-ROM) # @@ -100,7 +100,7 @@ CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=m CONFIG_CHR_DEV_SCH=m -@@ -1775,9 +1766,12 @@ +@@ -1922,9 +1913,12 @@ CONFIG_MD_RAID456=m # CONFIG_MD_MULTIPATH is not set CONFIG_MD_FAULTY=m @@ -115,16 +115,16 @@ # CONFIG_DM_MQ_DEFAULT is not set CONFIG_DM_DEBUG=y CONFIG_DM_BUFIO=m -@@ -1863,7 +1857,7 @@ +@@ -2015,7 +2009,7 @@ # CAIF transport drivers # CONFIG_VHOST_NET=m -# CONFIG_VHOST_SCSI is not set +CONFIG_VHOST_SCSI=m CONFIG_VHOST_RING=m - - # -@@ -1970,7 +1964,8 @@ + CONFIG_VHOST=m + # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +@@ -2140,7 +2134,8 @@ CONFIG_MYRI10GE_DCA=y # CONFIG_FEALNX is not set # CONFIG_NET_VENDOR_NATSEMI is not set @@ -134,16 +134,16 @@ CONFIG_NET_VENDOR_OKI=y CONFIG_PCH_GBE=m CONFIG_ETHOC=m -@@ -4377,7 +4372,7 @@ - CONFIG_VFIO_IOMMU_TYPE1=m +@@ -4860,7 +4855,7 @@ CONFIG_VFIO=m + CONFIG_VFIO_NOIOMMU=y CONFIG_VFIO_PCI=m -# CONFIG_VFIO_PCI_VGA is not set +CONFIG_VFIO_PCI_VGA=y - # CONFIG_VIRT_DRIVERS is not set - CONFIG_VIRTIO=m - -@@ -4596,7 +4591,11 @@ + CONFIG_VFIO_PCI_MMAP=y + CONFIG_VFIO_PCI_INTX=y + CONFIG_IRQ_BYPASS_MANAGER=m +@@ -5105,7 +5100,11 @@ # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=m # CONFIG_REISERFS_FS is not set @@ -156,7 +156,7 @@ CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y -@@ -4686,8 +4685,8 @@ +@@ -5196,8 +5195,8 @@ # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set @@ -167,7 +167,7 @@ # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -@@ -4824,7 +4823,7 @@ +@@ -5340,7 +5339,7 @@ CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_TURKISH=m @@ -176,7 +176,7 @@ CONFIG_DLM=m CONFIG_DLM_DEBUG=y -@@ -5017,8 +5016,8 @@ +@@ -5537,8 +5536,8 @@ CONFIG_KEYS=y CONFIG_PERSISTENT_KEYRINGS=y CONFIG_BIG_KEYS=y @@ -187,7 +187,7 @@ CONFIG_KEYS_DEBUG_PROC_KEYS=y # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y -@@ -5030,9 +5029,8 @@ +@@ -5550,9 +5549,8 @@ CONFIG_INTEL_TXT=y CONFIG_LSM_MMAP_MIN_ADDR=65535 CONFIG_SECURITY_SELINUX=y @@ -199,7 +199,7 @@ CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 -@@ -5053,8 +5051,9 @@ +@@ -5573,8 +5571,9 @@ CONFIG_EVM=y CONFIG_EVM_HMAC_VERSION=2 CONFIG_DEFAULT_SECURITY_SELINUX=y @@ -211,7 +211,7 @@ CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m -@@ -5126,7 +5125,7 @@ +@@ -5650,7 +5649,7 @@ CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32_PCLMUL=m @@ -220,7 +220,7 @@ CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m -@@ -5252,7 +5251,7 @@ +@@ -5785,7 +5784,7 @@ CONFIG_CMPXCHG_LOCKREF=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y @@ -229,11 +229,3 @@ CONFIG_CRC_ITU_T=m CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set -@@ -5301,6 +5300,7 @@ - CONFIG_DQL=y - CONFIG_NLATTR=y - CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y -+CONFIG_LRU_CACHE=m - CONFIG_AVERAGE=y - CONFIG_CLZ_TAB=y - CONFIG_CORDIC=m diff --git a/e1000e-3.3.5.3.tar.gz b/e1000e-3.3.5.3.tar.gz new file mode 100644 index 0000000..c67490d Binary files /dev/null and b/e1000e-3.3.5.3.tar.gz differ diff --git a/e1000e-3.3.5.tar.gz b/e1000e-3.3.5.tar.gz deleted file mode 100644 index 9c543ad..0000000 Binary files a/e1000e-3.3.5.tar.gz and /dev/null differ diff --git a/i40e-1.5.22.tar.gz b/i40e-1.5.22.tar.gz deleted file mode 100644 index 324003e..0000000 Binary files a/i40e-1.5.22.tar.gz and /dev/null differ diff --git a/i40e-1.5.25.tar.gz b/i40e-1.5.25.tar.gz new file mode 100644 index 0000000..c19f0b5 Binary files /dev/null and b/i40e-1.5.25.tar.gz differ diff --git a/igb-5.3.5.3.tar.gz b/igb-5.3.5.3.tar.gz deleted file mode 100644 index 7d9c9e3..0000000 Binary files a/igb-5.3.5.3.tar.gz and /dev/null differ diff --git a/igb-5.3.5.4.tar.gz b/igb-5.3.5.4.tar.gz new file mode 100644 index 0000000..18cbf69 Binary files /dev/null and b/igb-5.3.5.4.tar.gz differ diff --git a/ixgbe-4.3.15.tar.gz b/ixgbe-4.3.15.tar.gz deleted file mode 100644 index 2aaa2f6..0000000 Binary files a/ixgbe-4.3.15.tar.gz and /dev/null differ diff --git a/ixgbe-4.5.4.tar.gz b/ixgbe-4.5.4.tar.gz new file mode 100644 index 0000000..8021031 Binary files /dev/null and b/ixgbe-4.5.4.tar.gz differ diff --git a/kernel-3.10.0-327.36.2.el7.src.rpm b/kernel-3.10.0-327.36.2.el7.src.rpm deleted file mode 100644 index d5f08f8..0000000 Binary files a/kernel-3.10.0-327.36.2.el7.src.rpm and /dev/null differ diff --git a/kernel-3.10.0-514.el7.src.rpm b/kernel-3.10.0-514.el7.src.rpm new file mode 100644 index 0000000..382f04f Binary files /dev/null and b/kernel-3.10.0-514.el7.src.rpm differ diff --git a/kvmstealtime.patch b/kvmstealtime.patch deleted file mode 100644 index ef1807a..0000000 --- a/kvmstealtime.patch +++ /dev/null @@ -1,112 +0,0 @@ -Return-Path: kvm-owner@vger.kernel.org -Received: from mailpro.odiso.net (LHLO mailpro.odiso.net) (10.1.31.112) by - mailpro.odiso.net with LMTP; Thu, 15 Oct 2015 00:33:53 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by mailpro.odiso.net (Postfix) with ESMTP id 1F3454439326A - for ; Thu, 15 Oct 2015 00:33:53 +0200 (CEST) -X-Virus-Scanned: amavisd-new at mailpro.odiso.com -X-Spam-Flag: NO -X-Spam-Score: 0.971 -X-Spam-Level: -X-Spam-Status: No, score=0.971 tagged_above=-10 required=4 - tests=[HEADER_FROM_DIFFERENT_DOMAINS=0.001, - KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_MSPIKE_H3=-0.01, - RCVD_IN_MSPIKE_WL=-0.01, T_RP_MATCHES_RCVD=-0.01] - autolearn=no autolearn_force=no -Received: from mailpro.odiso.net ([127.0.0.1]) - by localhost (mailpro.odiso.net [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id hMmmKVYj2S2m for ; - Thu, 15 Oct 2015 00:33:47 +0200 (CEST) -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mailpro.odiso.net (Postfix) with ESMTP id 09D3D4439324A - for ; Thu, 15 Oct 2015 00:33:46 +0200 (CEST) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1754065AbbJNWdh (ORCPT ); - Wed, 14 Oct 2015 18:33:37 -0400 -Received: from mx1.redhat.com ([209.132.183.28]:48432 "EHLO mx1.redhat.com" - rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP - id S1753882AbbJNWdg (ORCPT ); - Wed, 14 Oct 2015 18:33:36 -0400 -Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) - by mx1.redhat.com (Postfix) with ESMTPS id 35096C0BFD02 - for ; Wed, 14 Oct 2015 22:33:36 +0000 (UTC) -Received: from amt.cnet (vpn1-4-185.ams2.redhat.com [10.36.4.185]) - by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t9EMXYFs002263; - Wed, 14 Oct 2015 18:33:35 -0400 -Received: from amt.cnet (localhost [127.0.0.1]) - by amt.cnet (Postfix) with ESMTP id ADFE61009C7; - Wed, 14 Oct 2015 19:33:15 -0300 (BRT) -Received: (from marcelo@localhost) - by amt.cnet (8.14.7/8.14.7/Submit) id t9EMXCRq014112; - Wed, 14 Oct 2015 19:33:12 -0300 -Date: Wed, 14 Oct 2015 19:33:09 -0300 -From: Marcelo Tosatti -To: kvm@vger.kernel.org -Cc: Rik van Riel , - "Dr. David Alan Gilbert" , - Paolo Bonzini , - Amit Shah -Subject: [PATCH] KVM: x86: move steal time initialization to vcpu entry time -Message-ID: <20151014223309.GA13900@amt.cnet> -MIME-Version: 1.0 -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline -User-Agent: Mutt/1.5.21 (2010-09-15) -X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 -Sender: kvm-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: kvm@vger.kernel.org - - -As reported at https://bugs.launchpad.net/qemu/+bug/1494350, -it is possible to have vcpu->arch.st.last_steal initialized -from a thread other than vcpu thread, say the iothread, via -KVM_SET_MSRS. - -Which can cause an overflow later (when subtracting from vcpu threads -sched_info.run_delay). - -To avoid that, move steal time accumulation to vcpu entry time, -before copying steal time data to guest. - -Signed-off-by: Marcelo Tosatti - -diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 8f0f6ec..0e0332e 100644 ---- a/arch/x86/kvm/x86.c -+++ b/arch/x86/kvm/x86.c -@@ -2030,6 +2030,8 @@ static void accumulate_steal_time(struct kvm_vcpu *vcpu) - - static void record_steal_time(struct kvm_vcpu *vcpu) - { -+ accumulate_steal_time(vcpu); -+ - if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED)) - return; - -@@ -2182,12 +2184,6 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info) - if (!(data & KVM_MSR_ENABLED)) - break; - -- vcpu->arch.st.last_steal = current->sched_info.run_delay; -- -- preempt_disable(); -- accumulate_steal_time(vcpu); -- preempt_enable(); -- - kvm_make_request(KVM_REQ_STEAL_UPDATE, vcpu); - - break; -@@ -2830,7 +2826,6 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) - vcpu->cpu = cpu; - } - -- accumulate_steal_time(vcpu); - kvm_make_request(KVM_REQ_STEAL_UPDATE, vcpu); - } - --- -To unsubscribe from this list: send the line "unsubscribe kvm" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/nbd-rename-REQ_TYPE_SPECIAL.patch b/nbd-rename-REQ_TYPE_SPECIAL.patch new file mode 100644 index 0000000..7edcff8 --- /dev/null +++ b/nbd-rename-REQ_TYPE_SPECIAL.patch @@ -0,0 +1,13 @@ +diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c +index 39e5f7f..9cf52ac 100644 +--- a/drivers/block/nbd.c ++++ b/drivers/block/nbd.c +@@ -592,7 +592,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd, + fsync_bdev(bdev); + mutex_lock(&nbd->tx_lock); + blk_rq_init(NULL, &sreq); +- sreq.cmd_type = REQ_TYPE_SPECIAL; ++ sreq.cmd_type = REQ_TYPE_DRV_PRIV; + nbd_cmd(&sreq) = NBD_CMD_DISC; + + /* Check again after getting mutex back. */ diff --git a/vhost-net-extend-device-allocation-to-vmalloc.patch b/vhost-net-extend-device-allocation-to-vmalloc.patch deleted file mode 100644 index 9cb5433..0000000 --- a/vhost-net-extend-device-allocation-to-vmalloc.patch +++ /dev/null @@ -1,76 +0,0 @@ -vhost-net: extend device allocation to vmalloc - -Backport upstream commit 23cc5a991c7a9fb7e6d6550e65cee4f4173111c5 to -3.10 kernel. -In upstream, this code is modified later in patch -d04257b07f2362d4eb550952d5bf5f4241a8046d, but it's unapplicable in 3.10 -because there's still no open-coded kvfree() function (appeared in -v3.15-rc5). - -Should fix bug reported in forum -http://forum.proxmox.com/threads/19194-VM-start-problem-with-virtio-net - -diff -r -U 3 -p a/drivers/vhost/net.c b/drivers/vhost/net.c ---- a/drivers/vhost/net.c 2014-07-16 22:25:31.000000000 +0400 -+++ b/drivers/vhost/net.c 2014-09-04 13:56:20.101952635 +0400 -@@ -18,6 +18,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -706,18 +707,30 @@ static void handle_rx_net(struct vhost_w - handle_rx(net); - } - -+static void vhost_net_free(void *addr) -+{ -+ if (is_vmalloc_addr(addr)) -+ vfree(addr); -+ else -+ kfree(addr); -+} -+ - static int vhost_net_open(struct inode *inode, struct file *f) - { -- struct vhost_net *n = kmalloc(sizeof *n, GFP_KERNEL); -+ struct vhost_net *n; - struct vhost_dev *dev; - struct vhost_virtqueue **vqs; - int r, i; - -- if (!n) -- return -ENOMEM; -+ n = kmalloc(sizeof *n, GFP_KERNEL | __GFP_NOWARN | __GFP_REPEAT); -+ if (!n) { -+ n = vmalloc(sizeof *n); -+ if (!n) -+ return -ENOMEM; -+ } - vqs = kmalloc(VHOST_NET_VQ_MAX * sizeof(*vqs), GFP_KERNEL); - if (!vqs) { -- kfree(n); -+ vhost_net_free(n); - return -ENOMEM; - } - -@@ -736,7 +749,7 @@ static int vhost_net_open(struct inode * - } - r = vhost_dev_init(dev, vqs, VHOST_NET_VQ_MAX); - if (r < 0) { -- kfree(n); -+ vhost_net_free(n); - kfree(vqs); - return r; - } -@@ -841,7 +854,7 @@ static int vhost_net_release(struct inod - * since jobs can re-queue themselves. */ - vhost_net_flush(n); - kfree(n->dev.vqs); -- kfree(n); -+ vhost_net_free(n); - return 0; - } -