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

Unverified Commit 6d6d8854 authored by derfelot's avatar derfelot
Browse files

Merge Linux 4.4.262 kernel

Changes in 4.4.262: (75 commits)
        uapi: nfnetlink_cthelper.h: fix userspace compilation error
        ath9k: fix transmitting to stations in dynamic SMPS mode
        net: Fix gro aggregation for udp encaps with zero csum
        can: skb: can_skb_set_owner(): fix ref counting if socket was closed before setting skb ownership
        can: flexcan: assert FRZ bit in flexcan_chip_freeze()
        can: flexcan: enable RX FIFO after FRZ/HALT valid
        netfilter: x_tables: gpf inside xt_find_revision()
        cifs: return proper error code in statfs(2)
        floppy: fix lock_fdc() signal handling
        Revert "mm, slub: consider rest of partial list if acquire_slab() fails"
        futex: Change locking rules
        futex: Cure exit race
        futex: fix dead code in attach_to_pi_owner()
        net/mlx4_en: update moderation when config reset
        net: lapbether: Remove netif_start_queue / netif_stop_queue
        net: davicom: Fix regulator not turned off on failed probe
        net: davicom: Fix regulator not turned off on driver removal
        media: usbtv: Fix deadlock on suspend
        mmc: mxs-mmc: Fix a resource leak in an error handling path in 'mxs_mmc_probe()'
        mmc: mediatek: fix race condition between msdc_request_timeout and irq
        powerpc/perf: Record counter overflow always if SAMPLE_IP is unset
        PCI: xgene-msi: Fix race in installing chained irq handler
        s390/smp: __smp_rescan_cpus() - move cpumask away from stack
        scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling
        ALSA: hda/hdmi: Cancel pending works before suspend
        ALSA: hda: Avoid spurious unsol event handling during S3/S4
        ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar
        s390/dasd: fix hanging DASD driver unbind
        mmc: core: Fix partition switch time for eMMC
        scripts/recordmcount.{c,pl}: support -ffunction-sections .text.* section names
        libertas: fix a potential NULL pointer dereference
        Goodix Fingerprint device is not a modem
        usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio slot
        usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM
        xhci: Improve detection of device initiated wake signal.
        USB: serial: io_edgeport: fix memory leak in edge_startup
        USB: serial: ch341: add new Product ID
        USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter
        USB: serial: cp210x: add some more GE USB IDs
        usbip: fix stub_dev to check for stream socket
        usbip: fix vhci_hcd to check for stream socket
        usbip: fix stub_dev usbip_sockfd_store() races leading to gpf
        staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()
        staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()
        staging: rtl8712: unterminated string leads to read overflow
        staging: rtl8188eu: fix potential memory corruption in rtw_check_beacon_data()
        staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd
        staging: rtl8192e: Fix possible buffer overflow in _rtl92e_wx_set_scan
        staging: comedi: addi_apci_1032: Fix endian problem for COS sample
        staging: comedi: addi_apci_1500: Fix endian problem for command sample
        staging: comedi: adv_pci1710: Fix endian problem for AI command data
        staging: comedi: das6402: Fix endian problem for AI command data
        staging: comedi: das800: Fix endian problem for AI command data
        staging: comedi: dmm32at: Fix endian problem for AI command data
        staging: comedi: me4000: Fix endian problem for AI command data
        staging: comedi: pcl711: Fix endian problem for AI command data
        staging: comedi: pcl818: Fix endian problem for AI command data
        NFSv4.2: fix return value of _nfs4_get_security_label()
        block: rsxx: fix error return code of rsxx_pci_probe()
        alpha: add $(src)/ rather than $(obj)/ to make source file path
        alpha: merge build rules of division routines
        alpha: make short build log available for division routines
        alpha: Package string routines together
        alpha: move exports to actual definitions
        alpha: get rid of tail-zeroing in __copy_user()
        alpha: switch __copy_user() and __do_clean_user() to normal calling conventions
        powerpc/64s: Fix instruction encoding for lis in ppc_function_entry()
        media: hdpvr: Fix an error handling path in hdpvr_probe()
        KVM: arm64: Fix exclusive limit for IPA size
        iio: imu: adis16400: release allocated memory on failure
        iio: imu: adis16400: fix memory leak
        xen/events: reset affinity of 2-level event when tearing it down
        xen/events: don't unmask an event channel when an eoi is pending
        xen/events: avoid handling the same event on two cpus at the same time
        Linux 4.4.262

Conflicts:
	arch/alpha/include/asm/Kbuild
	drivers/mmc/core/mmc.c
parents e74b0bae 36d46dd7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 261
SUBLEVEL = 262
EXTRAVERSION =
NAME = Blurry Fish Butt

+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
generic-y += clkdev.h
generic-y += cputime.h
generic-y += exec.h
generic-y += export.h
generic-y += hash.h
generic-y += irq_work.h
generic-y += mcs_spinlock.h
+16 −60
Original line number Diff line number Diff line
@@ -341,45 +341,17 @@ __asm__ __volatile__("1: stb %r2,%1\n" \
 * Complex access routines
 */

/* This little bit of silliness is to get the GP loaded for a function
   that ordinarily wouldn't.  Otherwise we could have it done by the macro
   directly, which can be optimized the linker.  */
#ifdef MODULE
#define __module_address(sym)		"r"(sym),
#define __module_call(ra, arg, sym)	"jsr $" #ra ",(%" #arg ")," #sym
#else
#define __module_address(sym)
#define __module_call(ra, arg, sym)	"bsr $" #ra "," #sym " !samegp"
#endif

extern void __copy_user(void);

extern inline long
__copy_tofrom_user_nocheck(void *to, const void *from, long len)
{
	register void * __cu_to __asm__("$6") = to;
	register const void * __cu_from __asm__("$7") = from;
	register long __cu_len __asm__("$0") = len;

	__asm__ __volatile__(
		__module_call(28, 3, __copy_user)
		: "=r" (__cu_len), "=r" (__cu_from), "=r" (__cu_to)
		: __module_address(__copy_user)
		  "0" (__cu_len), "1" (__cu_from), "2" (__cu_to)
		: "$1", "$2", "$3", "$4", "$5", "$28", "memory");

	return __cu_len;
}
extern long __copy_user(void *to, const void *from, long len);

#define __copy_to_user(to, from, n)			\
({							\
	__chk_user_ptr(to);				\
	__copy_tofrom_user_nocheck((__force void *)(to), (from), (n));	\
	__copy_user((__force void *)(to), (from), (n));	\
})
#define __copy_from_user(to, from, n)			\
({							\
	__chk_user_ptr(from);				\
	__copy_tofrom_user_nocheck((to), (__force void *)(from), (n));	\
	__copy_user((to), (__force void *)(from), (n));	\
})

#define __copy_to_user_inatomic __copy_to_user
@@ -389,35 +361,22 @@ extern inline long
copy_to_user(void __user *to, const void *from, long n)
{
	if (likely(__access_ok((unsigned long)to, n, get_fs())))
		n = __copy_tofrom_user_nocheck((__force void *)to, from, n);
		n = __copy_user((__force void *)to, from, n);
	return n;
}

extern inline long
copy_from_user(void *to, const void __user *from, long n)
{
	long res = n;
	if (likely(__access_ok((unsigned long)from, n, get_fs())))
		n = __copy_tofrom_user_nocheck(to, (__force void *)from, n);
	else
		memset(to, 0, n);
	return n;
		res = __copy_from_user_inatomic(to, from, n);
	if (unlikely(res))
		memset(to + (n - res), 0, res);
	return res;
}

extern void __do_clear_user(void);

extern inline long
__clear_user(void __user *to, long len)
{
	register void __user * __cl_to __asm__("$6") = to;
	register long __cl_len __asm__("$0") = len;
	__asm__ __volatile__(
		__module_call(28, 2, __do_clear_user)
		: "=r"(__cl_len), "=r"(__cl_to)
		: __module_address(__do_clear_user)
		  "0"(__cl_len), "1"(__cl_to)
		: "$1", "$2", "$3", "$4", "$5", "$28", "memory");
	return __cl_len;
}
extern long __clear_user(void __user *to, long len);

extern inline long
clear_user(void __user *to, long len)
@@ -427,9 +386,6 @@ clear_user(void __user *to, long len)
	return len;
}

#undef __module_address
#undef __module_call

#define user_addr_max() \
        (segment_eq(get_fs(), USER_DS) ? TASK_SIZE : ~0UL)

+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ ccflags-y := -Wno-sign-compare

obj-y    := entry.o traps.o process.o osf_sys.o irq.o \
	    irq_alpha.o signal.o setup.o ptrace.o time.o \
	    alpha_ksyms.o systbls.o err_common.o io.o
	    systbls.o err_common.o io.o

obj-$(CONFIG_VGA_HOSE)	+= console.o
obj-$(CONFIG_SMP)	+= smp.o

arch/alpha/kernel/alpha_ksyms.c

deleted100644 → 0
+0 −102
Original line number Diff line number Diff line
/*
 * linux/arch/alpha/kernel/alpha_ksyms.c
 *
 * Export the alpha-specific functions that are needed for loadable
 * modules.
 */

#include <linux/module.h>
#include <asm/console.h>
#include <asm/uaccess.h>
#include <asm/checksum.h>
#include <asm/fpu.h>
#include <asm/machvec.h>

#include <linux/syscalls.h>

/* these are C runtime functions with special calling conventions: */
extern void __divl (void);
extern void __reml (void);
extern void __divq (void);
extern void __remq (void);
extern void __divlu (void);
extern void __remlu (void);
extern void __divqu (void);
extern void __remqu (void);

EXPORT_SYMBOL(alpha_mv);
EXPORT_SYMBOL(callback_getenv);
EXPORT_SYMBOL(callback_setenv);
EXPORT_SYMBOL(callback_save_env);

/* platform dependent support */
EXPORT_SYMBOL(strcat);
EXPORT_SYMBOL(strcpy);
EXPORT_SYMBOL(strlen);
EXPORT_SYMBOL(strncpy);
EXPORT_SYMBOL(strncat);
EXPORT_SYMBOL(strchr);
EXPORT_SYMBOL(strrchr);
EXPORT_SYMBOL(memmove);
EXPORT_SYMBOL(__memcpy);
EXPORT_SYMBOL(__memset);
EXPORT_SYMBOL(___memset);
EXPORT_SYMBOL(__memsetw);
EXPORT_SYMBOL(__constant_c_memset);
EXPORT_SYMBOL(copy_page);
EXPORT_SYMBOL(clear_page);

EXPORT_SYMBOL(alpha_read_fp_reg);
EXPORT_SYMBOL(alpha_read_fp_reg_s);
EXPORT_SYMBOL(alpha_write_fp_reg);
EXPORT_SYMBOL(alpha_write_fp_reg_s);

/* Networking helper routines. */
EXPORT_SYMBOL(csum_tcpudp_magic);
EXPORT_SYMBOL(ip_compute_csum);
EXPORT_SYMBOL(ip_fast_csum);
EXPORT_SYMBOL(csum_partial_copy_nocheck);
EXPORT_SYMBOL(csum_partial_copy_from_user);
EXPORT_SYMBOL(csum_ipv6_magic);

#ifdef CONFIG_MATHEMU_MODULE
extern long (*alpha_fp_emul_imprecise)(struct pt_regs *, unsigned long);
extern long (*alpha_fp_emul) (unsigned long pc);
EXPORT_SYMBOL(alpha_fp_emul_imprecise);
EXPORT_SYMBOL(alpha_fp_emul);
#endif

/*
 * The following are specially called from the uaccess assembly stubs.
 */
EXPORT_SYMBOL(__copy_user);
EXPORT_SYMBOL(__do_clear_user);

/* 
 * SMP-specific symbols.
 */

#ifdef CONFIG_SMP
EXPORT_SYMBOL(_atomic_dec_and_lock);
#endif /* CONFIG_SMP */

/*
 * The following are special because they're not called
 * explicitly (the C compiler or assembler generates them in
 * response to division operations).  Fortunately, their
 * interface isn't gonna change any time soon now, so it's OK
 * to leave it out of version control.
 */
# undef memcpy
# undef memset
EXPORT_SYMBOL(__divl);
EXPORT_SYMBOL(__divlu);
EXPORT_SYMBOL(__divq);
EXPORT_SYMBOL(__divqu);
EXPORT_SYMBOL(__reml);
EXPORT_SYMBOL(__remlu);
EXPORT_SYMBOL(__remq);
EXPORT_SYMBOL(__remqu);
EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(memchr);
Loading