Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 75b83187 authored by derfelot's avatar derfelot
Browse files

Merge Linux 4.4.264 kernel

Changes in 4.4.264: (35 commits)
        net: fec: ptp: avoid register access when ipg clock is disabled
        powerpc/4xx: Fix build errors from mfdcr()
        atm: eni: dont release is never initialized
        atm: lanai: dont run lanai_dev_close if not open
        net: tehuti: fix error return code in bdx_probe()
        sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count
        nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default
        NFS: Correct size calculation for create reply length
        atm: uPD98402: fix incorrect allocation
        atm: idt77252: fix null-ptr-dereference
        u64_stats,lockdep: Fix u64_stats_init() vs lockdep
        nfs: we don't support removing system.nfs4_acl
        ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
        ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign
        x86/tlb: Flush global mappings when KAISER is disabled
        squashfs: fix inode lookup sanity checks
        squashfs: fix xattr id and id lookup sanity checks
        bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD
        macvlan: macvlan_count_rx() needs to be aware of preemption
        net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port
        e1000e: add rtnl_lock() to e1000_reset_task
        e1000e: Fix error handling in e1000_set_d0_lplu_state_82571
        net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template
        can: c_can_pci: c_can_pci_remove(): fix use-after-free
        can: c_can: move runtime PM enable/disable to c_can_platform
        can: m_can: m_can_do_rx_poll(): fix extraneous msg loss warning
        mac80211: fix rate mask reset
        net: cdc-phonet: fix data-interface release on probe failure
        RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server
        perf auxtrace: Fix auxtrace queue conflict
        can: dev: Move device back to init netns on owning netns delete
        net: sched: validate stab values
        mac80211: fix double free in ibss_leave
        xen-blkback: don't leak persistent grants from xen_blkbk_map()
        Linux 4.4.264
parents 5a12a2d9 9b39031d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 263
SUBLEVEL = 264
EXTRAVERSION =
NAME = Blurry Fish Butt

+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ static inline void syscall_rollback(struct task_struct *task,
static inline long syscall_get_error(struct task_struct *task,
				     struct pt_regs *regs)
{
	return regs->r10 == -1 ? regs->r8:0;
	return regs->r10 == -1 ? -regs->r8:0;
}

static inline long syscall_get_return_value(struct task_struct *task,
+18 −6
Original line number Diff line number Diff line
@@ -2140,27 +2140,39 @@ static void syscall_get_set_args_cb(struct unw_frame_info *info, void *data)
{
	struct syscall_get_set_args *args = data;
	struct pt_regs *pt = args->regs;
	unsigned long *krbs, cfm, ndirty;
	unsigned long *krbs, cfm, ndirty, nlocals, nouts;
	int i, count;

	if (unw_unwind_to_user(info) < 0)
		return;

	/*
	 * We get here via a few paths:
	 * - break instruction: cfm is shared with caller.
	 *   syscall args are in out= regs, locals are non-empty.
	 * - epsinstruction: cfm is set by br.call
	 *   locals don't exist.
	 *
	 * For both cases argguments are reachable in cfm.sof - cfm.sol.
	 * CFM: [ ... | sor: 17..14 | sol : 13..7 | sof : 6..0 ]
	 */
	cfm = pt->cr_ifs;
	nlocals = (cfm >> 7) & 0x7f; /* aka sol */
	nouts = (cfm & 0x7f) - nlocals; /* aka sof - sol */
	krbs = (unsigned long *)info->task + IA64_RBS_OFFSET/8;
	ndirty = ia64_rse_num_regs(krbs, krbs + (pt->loadrs >> 19));

	count = 0;
	if (in_syscall(pt))
		count = min_t(int, args->n, cfm & 0x7f);
		count = min_t(int, args->n, nouts);

	/* Iterate over outs. */
	for (i = 0; i < count; i++) {
		int j = ndirty + nlocals + i + args->i;
		if (args->rw)
			*ia64_rse_skip_regs(krbs, ndirty + i + args->i) =
				args->args[i];
			*ia64_rse_skip_regs(krbs, j) = args->args[i];
		else
			args->args[i] = *ia64_rse_skip_regs(krbs,
				ndirty + i + args->i);
			args->args[i] = *ia64_rse_skip_regs(krbs, j);
	}

	if (!args->rw) {
+4 −4
Original line number Diff line number Diff line
@@ -64,8 +64,8 @@ static inline void mtdcrx(unsigned int reg, unsigned int val)
#define mfdcr(rn)						\
	({unsigned int rval;					\
	if (__builtin_constant_p(rn) && rn < 1024)		\
		asm volatile("mfdcr %0," __stringify(rn)	\
		              : "=r" (rval));			\
		asm volatile("mfdcr %0, %1" : "=r" (rval)	\
			      : "n" (rn));			\
	else if (likely(cpu_has_feature(CPU_FTR_INDEXED_DCR)))	\
		rval = mfdcrx(rn);				\
	else							\
@@ -75,8 +75,8 @@ static inline void mtdcrx(unsigned int reg, unsigned int val)
#define mtdcr(rn, v)						\
do {								\
	if (__builtin_constant_p(rn) && rn < 1024)		\
		asm volatile("mtdcr " __stringify(rn) ",%0"	\
			      : : "r" (v)); 			\
		asm volatile("mtdcr %0, %1"			\
			      : : "n" (rn), "r" (v));		\
	else if (likely(cpu_has_feature(CPU_FTR_INDEXED_DCR)))	\
		mtdcrx(rn, v);					\
	else							\
+7 −4
Original line number Diff line number Diff line
@@ -245,12 +245,15 @@ static inline void __native_flush_tlb_single(unsigned long addr)
	 * ASID.  But, userspace flushes are probably much more
	 * important performance-wise.
	 *
	 * Make sure to do only a single invpcid when KAISER is
	 * disabled and we have only a single ASID.
	 * In the KAISER disabled case, do an INVLPG to make sure
	 * the mapping is flushed in case it is a global one.
	 */
	if (kaiser_enabled)
	if (kaiser_enabled) {
		invpcid_flush_one(X86_CR3_PCID_ASID_USER, addr);
		invpcid_flush_one(X86_CR3_PCID_ASID_KERN, addr);
	} else {
		asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
	}
}

static inline void __flush_tlb_all(void)
Loading