diff --git a/debian/bin/buildcheck.py b/debian/bin/buildcheck.py index 83802b739..f9fa48b36 100755 --- a/debian/bin/buildcheck.py +++ b/debian/bin/buildcheck.py @@ -159,7 +159,7 @@ class CheckAbi(object): type, ignore = ignore.split(':') if type in ('name', 'module'): p = self._ignore_pattern(ignore) - for symbol in symbols.itervalues(): + for symbol in symbols.values(): if p.match(getattr(symbol, type)): filtered.add(symbol.name) else: diff --git a/debian/changelog b/debian/changelog index 2f923ae7a..c1b37bf05 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,153 @@ linux (4.3~rc3-1~exp1) experimental; urgency=medium -- Ben Hutchings Sun, 27 Sep 2015 21:02:54 +0100 +linux (4.2.3-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.2 + - nfc: netlink: Add check on NFC_ATTR_VENDOR_DATA + - nfc: nci: hci: Add check on skb nci_hci_send_cmd parameter + - blk-mq: fix buffer overflow when reading sysfs file of 'pending' + - blk-mq: fix race between timeout and freeing request + - mac80211: enable assoc check for mesh interfaces + - [powerpc*] cxl: Allow release of contexts which have been OPENED but not + STARTED (regression in 4.2) + - ext4: don't manipulate recovery flag when freezing no-journal fs + (regression in 3.18) + - Revert "ext4: remove block_device_ejected" (regression in 4.1) + - [arm64] kconfig: Move LIST_POISON to a safe value + - [arm64] entry: always restore x0 from the stack on syscall return + - [arm64] flush FP/SIMD state correctly after execve() + - [arm64] head.S: initialise mdcr_el2 in el2_setup + - [armhf,arm64] KVM: vgic: Check for !irqchip_in_kernel() when mapping + resources (regression in 4.0) + - [arm64] KVM: add workaround for Cortex-A57 erratum #852523 + - [powerpc*] pseries: Fix corrupted pdn list (regression in 4.1) + - [powerpc*] eeh: Probe after unbalanced kref check (regression in 4.1) + - [powerpc*] eeh: Fix fenced PHB caused by eeh_slot_error_detail() + (regression in 3.18) + - [powerpc*] powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel + (regression in 4.2) + - [powerpc*] powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel= + (regression in 4.2) + - [powerpc*] pseries: Release DRC when configure_connector fails + (regression in 4.1) + - [powerpc*] mm: Recompute hash value after a failed update + - CIFS: fix type confusion in copy offload ioctl + - mm: check if section present during memory block registering + (regression in 3.19) + - [i386] mm: Initialize pmd_idx in page_table_range_init_count() + - [x86] i915: Set ddi_pll_sel in DP MST path (regression in 4.2) + - Btrfs: check if previous transaction aborted to avoid fs corruption + - nfsd: Fix an FS_LAYOUT_TYPES/LAYOUT_TYPES encode bug + - nfsd: ensure that the ol stateid hash reference is only put once + - nfsd: ensure that delegation stateid hash references are only put once + - NFSv4.1/pnfs: Fix atomicity of commit list updates (regression in 4.0) + - NFSv4: don't set SETATTR for O_RDONLY|O_EXCL + - NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked() + - NFS: Fix a NULL pointer dereference of migration recovery ops for v4.2 + client + - NFS: nfs_set_pgio_error sometimes misses errors + - NFS41/flexfiles: update inode after write finishes + - NFSv4: Force a post-op attribute update when holding a delegation + - NFS41/flexfiles: zero out DS write wcc + - NFSv4.1/flexfiles: Fix a protocol error in layoutreturn + - NFSv4.1: Fix a protocol issue with CLOSE stateids + - nfs: Fix truncated client owner id without proto type (regression in 4.2) + - Revert "NFSv4: Remove incorrect check in can_open_delegated()" + (regression in 3.19) + - svcrdma: Change maximum server payload back to RPCSVC_MAXPAYLOAD + (regression in 4.2) + - SUNRPC: Ensure that we wait for connections to complete before retrying + (regression in 4.0) + - SUNRPC: Lock the transport layer on shutdown + - [hppa] PCI: Enable 64-bit bus addresses on PA-RISC (regression in 4.2) + - [hppa] Use double word condition in 64bit CAS operation + - fs: if a coredump already exists, unlink and recreate with O_EXCL + - fs: Don't dump core if the corefile would become world-readable. + - mmc: sdhci-of-esdhc: add workaround for pre divider initial value + (regression in 4.2) + - mmc: sdhci: also get preset value and driver type for MMC_DDR52 + (regression in 3.16) + - mmc: sdhci: fix dma memory leak in sdhci_pre_req() (regression in 4.0) + - mmc: core: fix race condition in mmc_wait_data_done + - [armhf] iommu/fsl: Really fix init section(s) content (regression in 4.0) + - [armhf] iommu/io-pgtable-arm: Unmap and free table when overwriting with + block + - [x86] iommu/vt-d: Really use upper context table when necessary + (regression in 4.1) + - eCryptfs: Invalidate dcache entries when lower i_nlink is zero + - hfs: fix B-tree corruption after insertion at position 0 + - IB/srp: Handle partial connection success correctly + - IB/srp: Stop the scsi_eh_ and scsi_tmf_ threads if login fails + (regression in 4.2) + - IB/uverbs: reject invalid or unknown opcodes + - IB/uverbs: Fix race between ib_uverbs_open and remove_one + - IB/iser: Fix missing return status check in iser_send_data_out + (regression in 3.19) + - IB/iser: Fix possible bogus DMA unmapping (regression in 3.19) + - IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow + (regression in 3.19) + - IB/mlx4: Fix incorrect cq flushing in error state (regression in 4.0) + - hfs,hfsplus: cache pages correctly between bnode_create and bnode_free + - jbd2: avoid infinite loop when destroying aborted journal + (regression in 4.2) + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.3 + - phylib: fix device deletion order in mdiobus_unregister() + (regression in 4.2) + - sock, diag: fix panic in sock_diag_put_filterinfo + (regression in 3.19) + - net/ipv6: Correct PIM6 mrt_lock handling + - ipv6: fix multipath route replace error recovery (regression in 4.1) + - netlink, mmap: transform mmap skb into full skb on taps + - bridge: fix igmpv3 / mldv2 report parsing (regression in 4.2) + - [armhf] net: mvneta: fix DMA buffer unmapping in mvneta_rx() + (regression in 4.2) + - rtnetlink: catch -EOPNOTSUPP errors from ndo_bridge_getlink + (regression in 4.2) + - macvtap: fix TUNSETSNDBUF values > 64k (regression in 3.19) + - netlink: Fix autobind race condition that leads to zero port ID + (regression in 4.1) + - netlink: Replace rhash_portid with bound + - openvswitch: Zero flows on allocation. + - tcp: add proper TS val into RST packets (regression in 3.18) + - packet: Fix AF_PACKET ABI breakage in 4.2 + - net: revert "net_sched: move tp->root allocation into fw_init()" + (regression in 4.1) + - fib_rules: fix fib rule dumps across multiple skbs + - ppp: fix lockdep splat in ppp_dev_uninit() (regression in 4.2) + - [armhf] mvneta: use inband status only when explicitly enabled + (regression in 4.1) + - net/mlx4_core: Capping number of requested MSIXs to MAX_MSIX + - zram: fix possible use after free in zcomp_create() + - [x86] hp-wmi: limit hotkey enable + + [ Ben Hutchings ] + * ovl: conditionally use O_LARGEFILE in ovl_copy_up() (Closes: #800724) + * [x86] ALSA: hda - Disable power_save_node for Thinkpads (Closes: #800694) + * i2c: Enable I2C_CHARDEV as a module in all configurations with I2C + support (Closes: #800597) + * [mips*/octeon] Enable CAVIUM_CN63XXP1 (Closes: #800595) + * [mips*/octeon] Enable MMC, MMC_BLOCK, OCTEON_MMC and other drivers as + modules (Closes: #800594) + * ath10k: add qca6164 support (Closes: #800703) + * [!x86] net: Disable VMXNET3, only useful in VMware x86 virtual machines + * netfilter: conntrack: use nf_ct_tmpl_free in CT/synproxy error paths + (Closes: #800445) + * [arm64] Defer workaround for erratum #843419 + * [x86] crypto camellia_aesni_avx: Fix CPU feature checks (Closes: #800934) + + [ Salvatore Bonaccorso ] + * ipc: Initialize msg/shm IPC objects before doing ipc_addid() + (CVE-2015-7613) + + [ Ian Campbell ] + * [armel] Update breaks on flash-kernel to anything earlier than 3.37 since + that version adds the knowledge that various additional kirkwood systems + need a DTB appending as of v3.17-rc1. (Closes: #797878) + + -- Ben Hutchings Tue, 06 Oct 2015 17:44:55 +0100 + linux (4.2.1-2) unstable; urgency=medium * media: uvcvideo: Disable hardware timestamps by default (Closes: #794327) diff --git a/debian/config/alpha/config b/debian/config/alpha/config index 383469ff3..5b31c5dfd 100644 --- a/debian/config/alpha/config +++ b/debian/config/alpha/config @@ -249,7 +249,6 @@ CONFIG_SENSORS_W83627HF=m ## file: drivers/i2c/Kconfig ## CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m CONFIG_I2C_STUB=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set diff --git a/debian/config/arm64/config b/debian/config/arm64/config index e8f38a1d5..f9120839a 100644 --- a/debian/config/arm64/config +++ b/debian/config/arm64/config @@ -2,6 +2,8 @@ ## file: arch/arm64/Kconfig ## CONFIG_PCI=y +#. Until we decide how/whether to handle this in userland as well +# CONFIG_ARM64_ERRATUM_843419 is not set CONFIG_XEN=y CONFIG_COMPAT=y diff --git a/debian/config/armel/defines b/debian/config/armel/defines index 29a2fc0e0..043a4b4a2 100644 --- a/debian/config/armel/defines +++ b/debian/config/armel/defines @@ -28,7 +28,7 @@ recommends: u-boot-tools # QNAP TS-119/TS-219: 2097152 - 8 - 64 = 2097080 check-size: 2097080 check-size-with-dtb: true -breaks: flash-kernel (<< 3.30~) +breaks: flash-kernel (<< 3.37~) configs: armel/config-reduced armel/config.kirkwood diff --git a/debian/config/armhf/config.armmp b/debian/config/armhf/config.armmp index 527580d70..fd3fe24cb 100644 --- a/debian/config/armhf/config.armmp +++ b/debian/config/armhf/config.armmp @@ -290,11 +290,6 @@ CONFIG_SENSORS_G762=m ## CONFIG_HWSPINLOCK_OMAP=m -## -## file: drivers/i2c/Kconfig -## -CONFIG_I2C_CHARDEV=m - ## ## file: drivers/i2c/busses/Kconfig ## diff --git a/debian/config/config b/debian/config/config index 0c22f3d78..80b851ba3 100644 --- a/debian/config/config +++ b/debian/config/config @@ -779,6 +779,7 @@ CONFIG_SENSORS_ATK0110=m ## file: drivers/i2c/Kconfig ## CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=m # CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y # CONFIG_I2C_SLAVE is not set @@ -2229,7 +2230,6 @@ CONFIG_SENSORS_APDS990X=m CONFIG_HMC6352=m CONFIG_DS1682=m CONFIG_TI_DAC7512=m -CONFIG_VMWARE_BALLOON=m # CONFIG_BMP085_I2C is not set # CONFIG_BMP085_SPI is not set # CONFIG_USB_SWITCH_FSA9480 is not set @@ -2418,7 +2418,7 @@ CONFIG_VIRTIO_NET=m CONFIG_NLMON=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_NETDEV_BACKEND=m -CONFIG_VMXNET3=m +# CONFIG_VMXNET3 is not set ## ## file: drivers/net/appletalk/Kconfig @@ -3605,7 +3605,6 @@ CONFIG_SCSI_AACRAID=m CONFIG_SCSI_MVUMI=m CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_HPTIOP=m -CONFIG_VMWARE_PVSCSI=m CONFIG_XEN_SCSI_FRONTEND=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m diff --git a/debian/config/kernelarch-mips/config.4kc-malta b/debian/config/kernelarch-mips/config.4kc-malta index e175cb8ab..02d19e2a9 100644 --- a/debian/config/kernelarch-mips/config.4kc-malta +++ b/debian/config/kernelarch-mips/config.4kc-malta @@ -107,7 +107,6 @@ CONFIG_SENSORS_PCF8591=m ## file: drivers/i2c/Kconfig ## CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m ## ## file: drivers/i2c/busses/Kconfig diff --git a/debian/config/kernelarch-mips/config.5kc-malta b/debian/config/kernelarch-mips/config.5kc-malta index a1dc85d1f..864afd38a 100644 --- a/debian/config/kernelarch-mips/config.5kc-malta +++ b/debian/config/kernelarch-mips/config.5kc-malta @@ -109,7 +109,6 @@ CONFIG_SENSORS_PCF8591=m ## file: drivers/i2c/Kconfig ## CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m ## ## file: drivers/i2c/busses/Kconfig diff --git a/debian/config/kernelarch-mips/config.octeon b/debian/config/kernelarch-mips/config.octeon index c62bfc60a..5a226acb0 100644 --- a/debian/config/kernelarch-mips/config.octeon +++ b/debian/config/kernelarch-mips/config.octeon @@ -17,6 +17,7 @@ CONFIG_MIPS32_N32=y ## ## file: arch/mips/cavium-octeon/Kconfig ## +CONFIG_CAVIUM_CN63XXP1=y CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=1 # CONFIG_CAVIUM_OCTEON_2ND_KERNEL is not set CONFIG_CAVIUM_OCTEON_LOCK_L2=y @@ -76,6 +77,16 @@ CONFIG_INPUT_MOUSE=y CONFIG_FUSION=y CONFIG_FUSION_SAS=y +## +## file: drivers/mmc/Kconfig +## +CONFIG_MMC=m + +## +## file: drivers/mmc/card/Kconfig +## +CONFIG_MMC_BLOCK=m + ## ## file: drivers/mtd/Kconfig ## @@ -143,3 +154,8 @@ CONFIG_USB_OCTEON_OHCI=y CONFIG_SPARSEMEM_MANUAL=y ## end choice +## +## file: unknown +## +CONFIG_OCTEON_MMC=m + diff --git a/debian/config/kernelarch-powerpc/config b/debian/config/kernelarch-powerpc/config index b9a5cf1ae..16d45b2dc 100644 --- a/debian/config/kernelarch-powerpc/config +++ b/debian/config/kernelarch-powerpc/config @@ -251,7 +251,6 @@ CONFIG_SENSORS_W83627HF=m ## file: drivers/i2c/Kconfig ## CONFIG_I2C=y -CONFIG_I2C_CHARDEV=m # CONFIG_I2C_STUB is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set diff --git a/debian/config/kernelarch-sparc/config b/debian/config/kernelarch-sparc/config index f093ea283..cb0514f56 100644 --- a/debian/config/kernelarch-sparc/config +++ b/debian/config/kernelarch-sparc/config @@ -137,7 +137,6 @@ CONFIG_USB_HID=y ## file: drivers/i2c/Kconfig ## CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m # CONFIG_I2C_STUB is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set diff --git a/debian/config/kernelarch-x86/config b/debian/config/kernelarch-x86/config index 3586a4ed0..7c8dedd5c 100644 --- a/debian/config/kernelarch-x86/config +++ b/debian/config/kernelarch-x86/config @@ -596,7 +596,6 @@ CONFIG_SENSORS_ACPI_POWER=m ## CONFIG_I2C=y CONFIG_ACPI_I2C_OPREGION=y -CONFIG_I2C_CHARDEV=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -854,6 +853,7 @@ CONFIG_IBM_ASM=m CONFIG_PHANTOM=m CONFIG_CS5535_MFGPT=m CONFIG_HP_ILO=m +CONFIG_VMWARE_BALLOON=m ## ## file: drivers/misc/mei/Kconfig @@ -964,6 +964,7 @@ CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 CONFIG_DUMMY=m CONFIG_NET_FC=y CONFIG_NET_SB1000=m +CONFIG_VMXNET3=m ## ## file: drivers/net/arcnet/Kconfig @@ -1344,6 +1345,7 @@ CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ARCMSR=m CONFIG_SCSI_BUSLOGIC=m # CONFIG_SCSI_FLASHPOINT is not set +CONFIG_VMWARE_PVSCSI=m CONFIG_HYPERV_STORAGE=m CONFIG_SCSI_DMX3191D=m CONFIG_SCSI_EATA=m diff --git a/debian/patches/bugfix/all/Initialize-msg-shm-IPC-objects-before-doing-ipc_addi.patch b/debian/patches/bugfix/all/Initialize-msg-shm-IPC-objects-before-doing-ipc_addi.patch new file mode 100644 index 000000000..b4964de99 --- /dev/null +++ b/debian/patches/bugfix/all/Initialize-msg-shm-IPC-objects-before-doing-ipc_addi.patch @@ -0,0 +1,117 @@ +From: Linus Torvalds +Date: Wed, 30 Sep 2015 12:48:40 -0400 +Subject: Initialize msg/shm IPC objects before doing ipc_addid() +Origin: https://git.kernel.org/linus/b9a532277938798b53178d5a66af6e2915cb27cf + +As reported by Dmitry Vyukov, we really shouldn't do ipc_addid() before +having initialized the IPC object state. Yes, we initialize the IPC +object in a locked state, but with all the lockless RCU lookup work, +that IPC object lock no longer means that the state cannot be seen. + +We already did this for the IPC semaphore code (see commit e8577d1f0329: +"ipc/sem.c: fully initialize sem_array before making it visible") but we +clearly forgot about msg and shm. + +Reported-by: Dmitry Vyukov +Cc: Manfred Spraul +Cc: Davidlohr Bueso +Cc: stable@vger.kernel.org +Signed-off-by: Linus Torvalds +--- + ipc/msg.c | 14 +++++++------- + ipc/shm.c | 13 +++++++------ + ipc/util.c | 8 ++++---- + 3 files changed, 18 insertions(+), 17 deletions(-) + +diff --git a/ipc/msg.c b/ipc/msg.c +index 66c4f56..1471db9 100644 +--- a/ipc/msg.c ++++ b/ipc/msg.c +@@ -137,13 +137,6 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params) + return retval; + } + +- /* ipc_addid() locks msq upon success. */ +- id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni); +- if (id < 0) { +- ipc_rcu_putref(msq, msg_rcu_free); +- return id; +- } +- + msq->q_stime = msq->q_rtime = 0; + msq->q_ctime = get_seconds(); + msq->q_cbytes = msq->q_qnum = 0; +@@ -153,6 +146,13 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params) + INIT_LIST_HEAD(&msq->q_receivers); + INIT_LIST_HEAD(&msq->q_senders); + ++ /* ipc_addid() locks msq upon success. */ ++ id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni); ++ if (id < 0) { ++ ipc_rcu_putref(msq, msg_rcu_free); ++ return id; ++ } ++ + ipc_unlock_object(&msq->q_perm); + rcu_read_unlock(); + +diff --git a/ipc/shm.c b/ipc/shm.c +index 222131e..4178727 100644 +--- a/ipc/shm.c ++++ b/ipc/shm.c +@@ -551,12 +551,6 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params) + if (IS_ERR(file)) + goto no_file; + +- id = ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni); +- if (id < 0) { +- error = id; +- goto no_id; +- } +- + shp->shm_cprid = task_tgid_vnr(current); + shp->shm_lprid = 0; + shp->shm_atim = shp->shm_dtim = 0; +@@ -565,6 +559,13 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params) + shp->shm_nattch = 0; + shp->shm_file = file; + shp->shm_creator = current; ++ ++ id = ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni); ++ if (id < 0) { ++ error = id; ++ goto no_id; ++ } ++ + list_add(&shp->shm_clist, ¤t->sysvshm.shm_clist); + + /* +diff --git a/ipc/util.c b/ipc/util.c +index be42300..0f401d9 100644 +--- a/ipc/util.c ++++ b/ipc/util.c +@@ -237,6 +237,10 @@ int ipc_addid(struct ipc_ids *ids, struct kern_ipc_perm *new, int size) + rcu_read_lock(); + spin_lock(&new->lock); + ++ current_euid_egid(&euid, &egid); ++ new->cuid = new->uid = euid; ++ new->gid = new->cgid = egid; ++ + id = idr_alloc(&ids->ipcs_idr, new, + (next_id < 0) ? 0 : ipcid_to_idx(next_id), 0, + GFP_NOWAIT); +@@ -249,10 +253,6 @@ int ipc_addid(struct ipc_ids *ids, struct kern_ipc_perm *new, int size) + + ids->in_use++; + +- current_euid_egid(&euid, &egid); +- new->cuid = new->uid = euid; +- new->gid = new->cgid = egid; +- + if (next_id < 0) { + new->seq = ids->seq++; + if (ids->seq > IPCID_SEQ_MAX) +-- +2.6.0 + diff --git a/debian/patches/bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch b/debian/patches/bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch new file mode 100644 index 000000000..96d3bb799 --- /dev/null +++ b/debian/patches/bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch @@ -0,0 +1,43 @@ +From: David Howells +Date: Fri, 18 Sep 2015 11:45:12 +0100 +Subject: ovl: conditionally use O_LARGEFILE in ovl_copy_up() +Origin: https://git.kernel.org/cgit/linux/kernel/git/mszeredi/vfs.git/commit?id=bb00c2cd01c27e037900a28dcd01b00317a42fdb + +Open the lower file with O_LARGEFILE in ovl_copy_up() if the lower file +is >= 4GiB in size. + +Reported-by: Ulrich Obergfell +Signed-off-by: David Howells +Signed-off-by: Miklos Szeredi +Cc: # v3.18+ +--- + fs/overlayfs/copy_up.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c +index 84d693d..391c359 100644 +--- a/fs/overlayfs/copy_up.c ++++ b/fs/overlayfs/copy_up.c +@@ -76,16 +76,19 @@ static int ovl_copy_up_data(struct path *old, struct path *new, loff_t len) + struct file *new_file; + loff_t old_pos = 0; + loff_t new_pos = 0; +- int error = 0; ++ int error = 0, o_flag = 0; + + if (len == 0) + return 0; + +- old_file = ovl_path_open(old, O_RDONLY); ++ if (i_size_read(d_inode(old->dentry)) > MAX_NON_LFS) ++ o_flag |= O_LARGEFILE; ++ ++ old_file = ovl_path_open(old, o_flag | O_RDONLY); + if (IS_ERR(old_file)) + return PTR_ERR(old_file); + +- new_file = ovl_path_open(new, O_WRONLY); ++ new_file = ovl_path_open(new, o_flag | O_WRONLY); + if (IS_ERR(new_file)) { + error = PTR_ERR(new_file); + goto out_fput; diff --git a/debian/patches/bugfix/mips/bpf-avoid-unreachable-code-on-little-endian.patch b/debian/patches/bugfix/mips/bpf-avoid-unreachable-code-on-little-endian.patch index 138d510ce..cb57993a4 100644 --- a/debian/patches/bugfix/mips/bpf-avoid-unreachable-code-on-little-endian.patch +++ b/debian/patches/bugfix/mips/bpf-avoid-unreachable-code-on-little-endian.patch @@ -1,7 +1,7 @@ From: Aurelien Jarno Date: Fri, 4 Sep 2015 16:32:17 +0200 Subject: [1/2] MIPS: BPF: Avoid unreachable code on little endian -Forwarded: http://www.linux-mips.org/archives/linux-mips/2015-09/msg00040.html +Origin: https://git.kernel.org/linus/faa9724a674e5e52316bb0d173aed16bd17d536c On little endian, avoid generating the big endian version of the code by using #else in addition to #ifdef #endif. Also fix one alignment diff --git a/debian/patches/bugfix/mips/bpf-fix-build-on-pre-r2-little-endian-cpus.patch b/debian/patches/bugfix/mips/bpf-fix-build-on-pre-r2-little-endian-cpus.patch index fd58b1f3b..548136e14 100644 --- a/debian/patches/bugfix/mips/bpf-fix-build-on-pre-r2-little-endian-cpus.patch +++ b/debian/patches/bugfix/mips/bpf-fix-build-on-pre-r2-little-endian-cpus.patch @@ -1,7 +1,7 @@ From: Aurelien Jarno Date: Sat, 5 Sep 2015 17:02:59 +0200 Subject: [2/2] MIPS: BPF: Fix build on pre-R2 little endian CPUs -Forwarded: http://www.linux-mips.org/archives/linux-mips/2015-09/msg00041.html +Origin: https://git.kernel.org/linus/b259e51f2e29390518021f9b8df55a3de42f371b The rotr, seh and wsbh instructions have been introduced with the R2 ISA. Thus the current BPF code fails to build on pre-R2 little endian diff --git a/debian/patches/bugfix/x86/crypto-x86-camellia_aesni_avx-fix-cpu-feature-checks.patch b/debian/patches/bugfix/x86/crypto-x86-camellia_aesni_avx-fix-cpu-feature-checks.patch new file mode 100644 index 000000000..928504b17 --- /dev/null +++ b/debian/patches/bugfix/x86/crypto-x86-camellia_aesni_avx-fix-cpu-feature-checks.patch @@ -0,0 +1,36 @@ +From: Ben Hutchings +Date: Mon, 5 Oct 2015 16:40:01 +0100 +Subject: crypto x86/camellia_aesni_avx: Fix CPU feature checks +Bug-Debian: https://bugs.debian.org/800934 +Forwarded: http://mid.gmane.org/1444131093.2956.122.camel@decadent.org.uk + +We need to explicitly check the AVX and AES CPU features, as we can't +infer them from the related XSAVE feature flags. For example, the +Core i3 2310M passes the XSAVE feature test but does not implement +AES-NI. + +Reported-and-tested-by: Stéphane Glondu +References: https://bugs.debian.org/800934 +Fixes: ce4f5f9b65ae ("x86/fpu, crypto x86/camellia_aesni_avx: Simplify...") +Signed-off-by: Ben Hutchings +Cc: stable # 4.2 +--- + arch/x86/crypto/camellia_aesni_avx_glue.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/arch/x86/crypto/camellia_aesni_avx_glue.c b/arch/x86/crypto/camellia_aesni_avx_glue.c +index 80a0e43..bacaa13 100644 +--- a/arch/x86/crypto/camellia_aesni_avx_glue.c ++++ b/arch/x86/crypto/camellia_aesni_avx_glue.c +@@ -554,6 +554,11 @@ static int __init camellia_aesni_init(void) + { + const char *feature_name; + ++ if (!cpu_has_avx || !cpu_has_aes || !cpu_has_osxsave) { ++ pr_info("AVX or AES-NI instructions are not detected.\n"); ++ return -ENODEV; ++ } ++ + if (!cpu_has_xfeatures(XSTATE_SSE | XSTATE_YMM, &feature_name)) { + pr_info("CPU feature '%s' is not supported.\n", feature_name); + return -ENODEV; diff --git a/debian/patches/series b/debian/patches/series index 4829aa939..a98812733 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -84,3 +84,6 @@ features/all/grsecurity/grkernsec_perf_harden.patch bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch bugfix/arm/arm-dts-fix-makefile-target-for-sun4i-a10-itead-itea.patch bugfix/mips/mips-io-define-ioremap_uc.patch +bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch +bugfix/all/Initialize-msg-shm-IPC-objects-before-doing-ipc_addi.patch +bugfix/x86/crypto-x86-camellia_aesni_avx-fix-cpu-feature-checks.patch