Skip to content
Snippets Groups Projects
  1. Jul 31, 2018
  2. Jul 25, 2018
  3. Jul 24, 2018
    • Yunsheng Lin's avatar
      net: hns: Fix a skb used after free bug · 9eaebf78
      Yunsheng Lin authored
      
      skb maybe freed in hns_nic_net_xmit_hw() and return NETDEV_TX_OK,
      which cause hns_nic_net_xmit to use a freed skb.
      
      BUG: KASAN: use-after-free in hns_nic_net_xmit_hw+0x62c/0x940...
      	[17659.112635]      alloc_debug_processing+0x18c/0x1a0
      	[17659.117208]      __slab_alloc+0x52c/0x560
      	[17659.120909]      kmem_cache_alloc_node+0xac/0x2c0
      	[17659.125309]      __alloc_skb+0x6c/0x260
      	[17659.128837]      tcp_send_ack+0x8c/0x280
      	[17659.132449]      __tcp_ack_snd_check+0x9c/0xf0
      	[17659.136587]      tcp_rcv_established+0x5a4/0xa70
      	[17659.140899]      tcp_v4_do_rcv+0x27c/0x620
      	[17659.144687]      tcp_prequeue_process+0x108/0x170
      	[17659.149085]      tcp_recvmsg+0x940/0x1020
      	[17659.152787]      inet_recvmsg+0x124/0x180
      	[17659.156488]      sock_recvmsg+0x64/0x80
      	[17659.160012]      SyS_recvfrom+0xd8/0x180
      	[17659.163626]      __sys_trace_return+0x0/0x4
      	[17659.167506] INFO: Freed in kfree_skbmem+0xa0/0xb0 age=23 cpu=1 pid=13
      	[17659.174000]      free_debug_processing+0x1d4/0x2c0
      	[17659.178486]      __slab_free+0x240/0x390
      	[17659.182100]      kmem_cache_free+0x24c/0x270
      	[17659.186062]      kfree_skbmem+0xa0/0xb0
      	[17659.189587]      __kfree_skb+0x28/0x40
      	[17659.193025]      napi_gro_receive+0x168/0x1c0
      	[17659.197074]      hns_nic_rx_up_pro+0x58/0x90
      	[17659.201038]      hns_nic_rx_poll_one+0x518/0xbc0
      	[17659.205352]      hns_nic_common_poll+0x94/0x140
      	[17659.209576]      net_rx_action+0x458/0x5e0
      	[17659.213363]      __do_softirq+0x1b8/0x480
      	[17659.217062]      run_ksoftirqd+0x64/0x80
      	[17659.220679]      smpboot_thread_fn+0x224/0x310
      	[17659.224821]      kthread+0x150/0x170
      	[17659.228084]      ret_from_fork+0x10/0x40
      
      	BUG: KASAN: use-after-free in hns_nic_net_xmit+0x8c/0xc0...
      	[17751.080490]      __slab_alloc+0x52c/0x560
      	[17751.084188]      kmem_cache_alloc+0x244/0x280
      	[17751.088238]      __build_skb+0x40/0x150
      	[17751.091764]      build_skb+0x28/0x100
      	[17751.095115]      __alloc_rx_skb+0x94/0x150
      	[17751.098900]      __napi_alloc_skb+0x34/0x90
      	[17751.102776]      hns_nic_rx_poll_one+0x180/0xbc0
      	[17751.107097]      hns_nic_common_poll+0x94/0x140
      	[17751.111333]      net_rx_action+0x458/0x5e0
      	[17751.115123]      __do_softirq+0x1b8/0x480
      	[17751.118823]      run_ksoftirqd+0x64/0x80
      	[17751.122437]      smpboot_thread_fn+0x224/0x310
      	[17751.126575]      kthread+0x150/0x170
      	[17751.129838]      ret_from_fork+0x10/0x40
      	[17751.133454] INFO: Freed in kfree_skbmem+0xa0/0xb0 age=19 cpu=7 pid=43
      	[17751.139951]      free_debug_processing+0x1d4/0x2c0
      	[17751.144436]      __slab_free+0x240/0x390
      	[17751.148051]      kmem_cache_free+0x24c/0x270
      	[17751.152014]      kfree_skbmem+0xa0/0xb0
      	[17751.155543]      __kfree_skb+0x28/0x40
      	[17751.159022]      napi_gro_receive+0x168/0x1c0
      	[17751.163074]      hns_nic_rx_up_pro+0x58/0x90
      	[17751.167041]      hns_nic_rx_poll_one+0x518/0xbc0
      	[17751.171358]      hns_nic_common_poll+0x94/0x140
      	[17751.175585]      net_rx_action+0x458/0x5e0
      	[17751.179373]      __do_softirq+0x1b8/0x480
      	[17751.183076]      run_ksoftirqd+0x64/0x80
      	[17751.186691]      smpboot_thread_fn+0x224/0x310
      	[17751.190826]      kthread+0x150/0x170
      	[17751.194093]      ret_from_fork+0x10/0x40
      
      Change-Id: I5fbdea5d0264c79dbcc91f8519cda1004b667866
      Fixes: 13ac695e ("net:hns: Add support of Hip06 SoC to the Hislicon Network Subsystem")
      Signed-off-by: default avatarYunsheng Lin <linyunsheng@huawei.com>
      Signed-off-by: default avatarlipeng <lipeng321@huawei.com>
      Reported-by: default avatarJun He <hjat2005@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
      
      
      Git-commit: 27463ad9
      Signed-off-by: default avatarDennis Cagle <dcagle@codeaurora.org>
      9eaebf78
    • Florian Westphal's avatar
      netfilter: add back stackpointer size checks · 10672907
      Florian Westphal authored
      
      The rationale for removing the check is only correct for rulesets
      generated by ip(6)tables.
      
      In iptables, a jump can only occur to a user-defined chain, i.e.
      because we size the stack based on number of user-defined chains we
      cannot exceed stack size.
      
      However, the underlying binary format has no such restriction,
      and the validation step only ensures that the jump target is a
      valid rule start point.
      
      IOW, its possible to build a rule blob that has no user-defined
      chains but does contain a jump.
      
      If this happens, no jump stack gets allocated and crash occurs
      because no jumpstack was allocated.
      
      Change-Id: I03e0851c2c9feeb4350c55bbc797a67ed7b3d8b7
      Fixes: 7814b6ec ("netfilter: xtables: don't save/restore jumpstack offset")
      Reported-by: default avatar <syzbot+e783f671527912cd9403@syzkaller.appspotmail.com>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
      
      
      Git-commit: 57ebd808
      Signed-off-by: default avatarDennis Cagle <dcagle@codeaurora.org>
      10672907
    • Johannes Thumshirn's avatar
      UPSTREAM: scsi: sg: don't return bogus Sg_requests · d8ea32ef
      Johannes Thumshirn authored
      
      If the list search in sg_get_rq_mark() fails to find a valid request, we
      return a bogus element. This then can later lead to a GPF in
      sg_remove_scat().
      
      So don't return bogus Sg_requests in sg_get_rq_mark() but NULL in case
      the list search doesn't find a valid request.
      
      Bug: 79090045
      Signed-off-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
      Reported-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Doug Gilbert <dgilbert@interlog.com>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
      Acked-by: default avatarDoug Gilbert <dgilbert@interlog.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarChenbo Feng <fengc@google.com>
      (cherry picked from commit 48ae8484)
      
      Change-Id: If95d1a8eef3748c9937201e524184b89a5eaaf2e
      Bug: 75300370
      Git-repo: https://android.googlesource.com/kernel/msm
      
      
      Git-commit: 58408c68
      Signed-off-by: default avatarDennis Cagle <dcagle@codeaurora.org>
      d8ea32ef
  4. Jul 23, 2018
  5. Jul 18, 2018
  6. Jul 17, 2018
  7. Jul 16, 2018
  8. Jul 13, 2018
    • Gaurav Kohli's avatar
      soc: qcom: service-notifier: Create qmi_client per service path · 9a3568d0
      Gaurav Kohli authored
      
      As per current design each different pd service running on same
      subsytem are using same qmi connection from HLOS pil, but it
      has own disadvantages if each service crashed simultaneously and
      using the same per client workqueue and override each other's data. To
      overcome the same and to avoid much driver change creating qmi client
      per service.
      
      Change-Id: I45096798fb35d50903d7c99d42ae5ce16becf063
      Signed-off-by: default avatarGaurav Kohli <gkohli@codeaurora.org>
      9a3568d0
  9. Jul 12, 2018
    • Lingutla Chandrasekhar's avatar
      timers: Forward timer base before migrating timers · a967ec3c
      Lingutla Chandrasekhar authored
      
      commit c52232a4 upstream.
      
      On CPU hotunplug the enqueued timers of the unplugged CPU are migrated to a
      live CPU. This happens from the control thread which initiated the unplug.
      
      If the CPU on which the control thread runs came out from a longer idle
      period then the base clock of that CPU might be stale because the control
      thread runs prior to any event which forwards the clock.
      
      In such a case the timers from the unplugged CPU are queued on the live CPU
      based on the stale clock which can cause large delays due to increased
      granularity of the outer timer wheels which are far away from base:;clock.
      
      But there is a worse problem than that. The following sequence of events
      illustrates it:
      
       - CPU0 timer1 is queued expires = 59969 and base->clk = 59131.
      
         The timer is queued at wheel level 2, with resulting expiry time = 60032
         (due to level granularity).
      
       - CPU1 enters idle @60007, with next timer expiry @60020.
      
       - CPU0 is hotplugged at @60009
      
       - CPU1 exits idle and runs the control thread which migrates the
         timers from CPU0
      
         timer1 is now queued in level 0 for immediate handling in the next
         softirq because the requested expiry time 59969 is before CPU1 base->clk
         60007
      
       - CPU1 runs code which forwards the base clock which succeeds because the
         next expiring timer. which was collected at idle entry time is still set
         to 60020.
      
         So it forwards beyond 60007 and therefore misses to expire the migrated
         timer1. That timer gets expired when the wheel wraps around again, which
         takes between 63 and 630ms depending on the HZ setting.
      
      Address both problems by invoking forward_timer_base() for the control CPUs
      timer base. All other places, which might run into a similar problem
      (mod_timer()/add_timer_on()) already invoke forward_timer_base() to avoid
      that.
      
      [ tglx: Massaged comment and changelog ]
      
      Change-Id: Ied68e3e2f7d429b6da90d645bfbe3293e01601e5
      Fixes: a683f390 ("timers: Forward the wheel clock whenever possible")
      Co-developed-by: default avatarNeeraj Upadhyay <neeraju@codeaurora.org>
      Signed-off-by: default avatarNeeraj Upadhyay <neeraju@codeaurora.org>
      Signed-off-by: default avatarLingutla Chandrasekhar <clingutla@codeaurora.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Anna-Maria Gleixner <anna-maria@linutronix.de>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: stable@vger.kernel.org
      Link: https://lkml.kernel.org/r/20180118115022.6368-1-clingutla@codeaurora.org
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Git-commit: c52232a4
      Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
      
      
      [gkohli@codeaurora: Resolve trivial merge conflicts]
      Signed-off-by: default avatarGaurav Kohli <gkohli@codeaurora.org>
      a967ec3c
    • Sandeep Panda's avatar
      ARM: dts: msm: add support for FHD+ panel to sdm670 · 61ad72e4
      Sandeep Panda authored
      
      This change adds the hx8399 FHD+ panel node to sdm670
      CDP and MTP platform.
      
      Change-Id: Ib09a41131802cd9f9fd571e6c5131ec8b5cf69a0
      Signed-off-by: default avatarSandeep Panda <spanda@codeaurora.org>
      61ad72e4
  10. Jul 11, 2018
  11. Jul 10, 2018
Loading