From: Stricted Date: Wed, 21 Mar 2018 22:07:35 +0000 (+0100) Subject: Merge tag 'v3.10.107' into update X-Git-Url: https://git.stricted.de/?p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git;a=commitdiff_plain;h=073b9047a02b15d6145346d0b94c1aa009d344f0 Merge tag 'v3.10.107' into update This is the 3.10.107 stable release --- 073b9047a02b15d6145346d0b94c1aa009d344f0 diff --cc drivers/char/Kconfig index 0519b3c5b8a4,8ccb96ae3fd9..117a5dbcccc8 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@@ -592,14 -579,13 +592,17 @@@ config TELCLOC controlling the behavior of this hardware. config DEVPORT - bool + bool "/dev/port character device" depends on ISA || PCI default y + help + Say Y here if you want to support the /dev/port device. The /dev/port + device is similar to /dev/mem, but for I/O ports. +config DCC_TTY + tristate "DCC tty driver" + depends on ARM + source "drivers/s390/char/Kconfig" config MSM_SMD_PKT diff --cc drivers/char/mem.c index d370021c7022,40d2e99c6ba7..1a62849e7f1d --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@@ -60,8 -60,11 +60,12 @@@ static inline int valid_mmap_phys_addr_ } #endif +#if defined(CONFIG_DEVMEM) || defined(CONFIG_DEVKMEM) #ifdef CONFIG_STRICT_DEVMEM + static inline int page_is_allowed(unsigned long pfn) + { + return devmem_is_allowed(pfn); + } static inline int range_is_allowed(unsigned long pfn, unsigned long size) { u64 from = ((u64)pfn) << PAGE_SHIFT; diff --cc drivers/scsi/sd.c index 1fd54406a898,880a300baf7a..3d4a2eff5b0c --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@@ -1414,17 -1418,8 +1418,18 @@@ out */ kfree(sshdr); retval = sdp->changed ? DISK_EVENT_MEDIA_CHANGE : 0; +#ifdef CONFIG_MTK_MULTI_PARTITION_MOUNT_ONLY_SUPPORT + //add for sdcard hotplug start + if(1 == retval){ + if(sdkp->old_media_present != sdkp->media_present){ + retval |= sdkp->media_present ? 0 : DISK_EVENT_MEDIA_DISAPPEAR; + sdkp->old_media_present = sdkp->media_present; + } + } + //add for sdcard hotplug end +#endif sdp->changed = 0; + scsi_disk_put(sdkp); return retval; } diff --cc drivers/usb/class/cdc-acm.c index 5e45a5e55a53,802df033e24c..d98a0249acc9 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@@ -816,14 -541,10 +816,15 @@@ static int acm_port_activate(struct tty */ set_bit(TTY_NO_WRITE_SPLIT, &tty->flags); acm->control->needs_remote_wakeup = 1; +#ifdef CONFIG_MTK_DT_USB_SUPPORT +#ifdef CONFIG_PM_RUNTIME + acm->control->needs_remote_wakeup = 0; +#endif +#endif acm->ctrlurb->dev = acm->dev; - if (usb_submit_urb(acm->ctrlurb, GFP_KERNEL)) { + retval = usb_submit_urb(acm->ctrlurb, GFP_KERNEL); + if (retval) { dev_err(&acm->control->dev, "%s - usb_submit_urb(ctrl irq) failed\n", __func__); goto error_submit_urb; diff --cc mm/memory.c index 2467a7666565,8b4975d1f167..9a90856bb0c0 --- a/mm/memory.c +++ b/mm/memory.c @@@ -1658,14 -1653,7 +1658,8 @@@ no_page_table return ERR_PTR(-EFAULT); return page; } +EXPORT_SYMBOL_GPL(follow_page_mask); - static inline int stack_guard_page(struct vm_area_struct *vma, unsigned long addr) - { - return stack_guard_page_start(vma, addr) || - stack_guard_page_end(vma, addr+PAGE_SIZE); - } - /** * __get_user_pages() - pin user pages in memory * @tsk: task_struct of target task diff --cc net/ipv4/tcp_input.c index 1e0c33efccba,0680058fe693..094515e751d0 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@@ -5570,10 -5536,9 +5571,9 @@@ static int tcp_rcv_synsent_state_proces * to stand against the temptation 8) --ANK */ inet_csk_schedule_ack(sk); - icsk->icsk_ack.lrcvtime = tcp_time_stamp; tcp_enter_quickack_mode(sk); inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK, - TCP_DELACK_MAX, TCP_RTO_MAX); + TCP_DELACK_MAX, sysctl_tcp_rto_max); discard: __kfree_skb(skb); diff --cc net/ipv4/tcp_timer.c index 98cd820c1207,722367a6d817..8cb86fa84e2d --- a/net/ipv4/tcp_timer.c +++ b/net/ipv4/tcp_timer.c @@@ -490,10 -481,10 +491,11 @@@ void tcp_write_timer_handler(struct soc struct inet_connection_sock *icsk = inet_csk(sk); int event; - if (sk->sk_state == TCP_CLOSE || !icsk->icsk_pending) + if (((1 << sk->sk_state) & (TCPF_CLOSE | TCPF_LISTEN)) || + !icsk->icsk_pending) goto out; - + if (icsk->icsk_MMSRB != 1) + { if (time_after(icsk->icsk_timeout, jiffies)) { sk_reset_timer(sk, &icsk->icsk_retransmit_timer, icsk->icsk_timeout); goto out; diff --cc net/unix/af_unix.c index 360954149888,4b18115c0543..a14c213ea427 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@@ -1072,8 -1049,10 +1073,11 @@@ out_unlock spin_unlock(&unix_table_lock); out_up: mutex_unlock(&u->readlock); + out_put: + if (err) + path_put(&path); out: + return err; } @@@ -1770,16 -1719,7 +1766,12 @@@ restart_locked goto out_unlock; } - <<<<<<< HEAD - if (unlikely(unix_peer(other) != sk && unix_recvq_full(other))) { + /* other == sk && unix_peer(other) != sk if + * - unix_peer(sk) == NULL, destination address bound to sk + * - unix_peer(sk) == sk by time of get but disconnected before lock + */ + if (other != sk && + unlikely(unix_peer(other) != sk && unix_recvq_full(other))) { - ======= - if (unlikely(unix_peer(other) != sk && unix_recvq_full(other))) { - >>>>>>> v3.10.95 if (timeo) { timeo = unix_wait_for_peer(other, timeo);