1. 03 11月, 2015 4 次提交
    • B
      ppp, slip: Validate VJ compression slot parameters completely · 4ab42d78
      Ben Hutchings 提交于
      Currently slhc_init() treats out-of-range values of rslots and tslots
      as equivalent to 0, except that if tslots is too large it will
      dereference a null pointer (CVE-2015-7799).
      
      Add a range-check at the top of the function and make it return an
      ERR_PTR() on error instead of NULL.  Change the callers accordingly.
      
      Compile-tested only.
      Reported-by: N郭永刚 <guoyonggang@360.cn>
      References: http://article.gmane.org/gmane.comp.security.oss.general/17908Signed-off-by: NBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4ab42d78
    • B
      qmi_wwan: fix entry for HP lt4112 LTE/HSPA+ Gobi 4G Module · 70910791
      Bjørn Mork 提交于
      The lt4112 is a HP branded Huawei me906e modem. Like other Huawei
      modems, it does not have a fixed interface to function mapping.
      Instead it uses a Huawei specific scheme: functions are mapped by
      subclass and protocol.
      
      However, the HP vendor ID is used for modems from many different
      manufacturers using different schemes, so we cannot apply a generic
      vendor rule like we do for the Huawei vendor ID.
      
      Replace the previous lt4112 entry pointing to an arbitrary interface
      number with a device specific subclass + protocol match.
      Reported-and-tested-by: NMuri Nicanor <muri+libqmi@immerda.ch>
      Tested-by: NMartin Hauke <mardnh@gmx.de>
      Fixes: bb2bdeb8 ("qmi_wwan: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem")
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      70910791
    • S
      sh_eth: fix WARNING in dma_common_free_remap() · b61ed8fd
      Sergei Shtylyov 提交于
      Iff the first dma_alloc_coherent()  call fails in sh_eth_ring_init(), the
      following  is printed to the kernel console:
      
      WARNING: CPU: 0 PID: 1 at drivers/base/dma-mapping.c:334 dma_common_free_remap+0x48/0x6c()
      trying to free invalid coherent area:   (null)
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.0-rc7-dirty #969
      Hardware name: Generic R8A7791 (Flattened Device Tree)
      Backtrace:
      [<c0013820>] (dump_backtrace) from [<c00139bc>] (show_stack+0x18/0x1c)
       r6:c0662856 r5:00000009 r4:00000000 r3:00204140
      [<c00139a4>] (show_stack) from [<c0227510>] (dump_stack+0x74/0x90)
      [<c022749c>] (dump_stack) from [<c0026ef4>] (warn_slowpath_common+0x8c/0xb8)
       r4:ee84dce0 r3:c0712774
      [<c0026e68>] (warn_slowpath_common) from [<c0026fc4>] (warn_slowpath_fmt+0x38/0x40)
       r8:ee7f8000 r7:c0734520 r6:00001000 r5:20000008 r4:00000000
      [<c0026f90>] (warn_slowpath_fmt) from [<c02df404>] (dma_common_free_remap+0x48/0x6c)
       r3:00000000 r2:c0662871
      [<c02df3bc>] (dma_common_free_remap) from [<c001b9fc>] (__arm_dma_free+0xb8/0xd4)
      r6:00000001 r5:00000000 r4:00001000 r3:ee8c5584
      [<c001b944>] (__arm_dma_free) from [<c001ba68>] (arm_dma_free+0x24/0x2c)
       r10:0000016b r8:00000000 r7:ee9bc830 r6:00000000 r5:00000400 r4:ee9bc800
      [<c001ba44>] (arm_dma_free) from [<c032ebf0>] (sh_eth_ring_init+0x110/0x138)
      [<c032eae0>] (sh_eth_ring_init) from [<c033179c>] (sh_eth_open+0x94/0x1f4)
       r6:00000000 r5:ee9bcd18 r4:ee9bc800
      [<c0331708>] (sh_eth_open) from [<c041bf7c>] (__dev_open+0x84/0x104)
       r6:c0565c50 r5:00000000 r4:ee9bc800
      [<c041bef8>] (__dev_open) from [<c041c208>] (__dev_change_flags+0x94/0x13c)
       r7:00001002 r6:00000001 r5:00001003 r4:ee9bc800
      [<c041c174>] (__dev_change_flags) from [<c041c2e8>] (dev_change_flags+0x20/0x50)
       r7:c072c8a0 r6:00000138 r5:00001002 r4:ee9bc800
      [<c041c2c8>] (dev_change_flags) from [<c06e8d4c>] (ip_auto_config+0x174/0xf7c)
       r8:00001002 r7:c072c8a0 r6:c0700040 r5:00000001 r4:ee9bc800 r3:00000101
      [<c06e8bd8>] (ip_auto_config) from [<c000a810>] (do_one_initcall+0x100/0x1c8)
       r10:c06f883c r9:00000000 r8:c06e8bd8 r7:c0734000 r6:c070e918 r5:c070e918
       r4:ee083640
      [<c000a710>] (do_one_initcall) from [<c06c9ddc>] (kernel_init_freeable+0x11c/0x1ec)
       r10:c06f883c r9:00000000 r8:00000099 r7:c0734000 r6:c070372c r5:c06f8834
       r4:00000007
      [<c06c9cc0>] (kernel_init_freeable) from [<c0514d78>] (kernel_init+0x14/0xec)
       r10:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c0514d64 r4:c0734000
      [<c0514d64>] (kernel_init) from [<c0010458>] (ret_from_fork+0x14/0x3c)
       r4:00000000 r3:ee84c000
      
      This is because the code jumps to a wrong label and so tries to free yet
      unallocated coherent memory.  Fix the *goto* in question.
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b61ed8fd
    • S
      sh_eth: fix uninitialized arrays in sh_eth_ring_init() · 2c94e856
      Sergei Shtylyov 提交于
      sh_eth_ring_free()  called in the sh_eth_ring_init()'s error path expects
      the arrays pointed  to  by 'sh_eth_private::[rt]x_skbuff' to be initialized
      with NULLs but they are allocated with just kmalloc_array() and so are left
      filled with random data. Use kcalloc() instead.
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2c94e856
  2. 02 11月, 2015 4 次提交
  3. 30 10月, 2015 1 次提交
  4. 28 10月, 2015 4 次提交
    • C
      net/mlx4: Copy/set only sizeof struct mlx4_eqe bytes · c02b0501
      Carol L Soto 提交于
      When doing memcpy/memset of EQEs, we should use sizeof struct
      mlx4_eqe as the base size and not caps.eqe_size which could be bigger.
      
      If caps.eqe_size is bigger than the struct mlx4_eqe then we corrupt
      data in the master context.
      
      When using a 64 byte stride, the memcpy copied over 63 bytes to the
      slave_eq structure.  This resulted in copying over the entire eqe of
      interest, including its ownership bit -- and also 31 bytes of garbage
      into the next WQE in the slave EQ -- which did NOT include the ownership
      bit (and therefore had no impact).
      
      However, once the stride is increased to 128, we are overwriting the
      ownership bits of *three* eqes in the slave_eq struct.  This results
      in an incorrect ownership bit for those eqes, which causes the eq to
      seem to be full. The issue therefore surfaced only once 128-byte EQEs
      started being used in SRIOV and (overarchitectures that have 128/256
      byte cache-lines such as PPC) - e.g after commit 77507aa2
      "net/mlx4_core: Enable CQE/EQE stride support".
      
      Fixes: 08ff3235 ('mlx4: 64-byte CQE/EQE support')
      Signed-off-by: NCarol L Soto <clsoto@linux.vnet.ibm.com>
      Signed-off-by: NJack Morgenstein <jackm@dev.mellanox.co.il>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c02b0501
    • J
      net/mlx4_en: Explicitly set no vlan tags in WQE ctrl segment when no vlan is present · 092bf0fc
      Jack Morgenstein 提交于
      We do not set the ins_vlan field to zero when no vlan id is present in the packet.
      
      Since WQEs in the TX ring are not zeroed out between uses, this oversight
      could result in having vlan flags present in the WQE ctrl segment when no
      vlan is preset.
      
      Fixes: e38af4fa ('net/mlx4_en: Add support for hardware accelerated 802.1ad vlan')
      Reported-by: NGideon Naim <gideonn@mellanox.com>
      Signed-off-by: NJack Morgenstein <jackm@dev.mellanox.co.il>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      092bf0fc
    • L
      amd-xgbe: Fix race between access of desc and desc index · 20986ed8
      Lendacky, Thomas 提交于
      During Tx cleanup it's still possible for the descriptor data to be
      read ahead of the descriptor index. A memory barrier is required between
      the read of the descriptor index and the start of the Tx cleanup loop.
      This allows a change to a lighter-weight barrier in the Tx transmit
      routine just before updating the current descriptor index.
      
      Since the memory barrier does result in extra overhead on arm64, keep
      the previous change to not chase the current descriptor value. This
      prevents the execution of the barrier for each loop performed.
      Suggested-by: NAlexander Duyck <alexander.duyck@gmail.com>
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      20986ed8
    • N
      forcedeth: fix unilateral interrupt disabling in netpoll path · 0b7c8743
      Neil Horman 提交于
      Forcedeth currently uses disable_irq_lockdep and enable_irq_lockdep, which in
      some configurations simply calls local_irq_disable.  This causes errant warnings
      in the netpoll path as in netpoll_send_skb_on_dev, where we disable irqs using
      local_irq_save, leading to the following warning:
      
      WARNING: at net/core/netpoll.c:352 netpoll_send_skb_on_dev+0x243/0x250() (Not
      tainted)
      Hardware name:
      netpoll_send_skb_on_dev(): eth0 enabled interrupts in poll
      (nv_start_xmit_optimized+0x0/0x860 [forcedeth])
      Modules linked in: netconsole(+) configfs ipv6 iptable_filter ip_tables ppdev
      parport_pc parport sg microcode serio_raw edac_core edac_mce_amd k8temp
      snd_hda_codec_realtek snd_hda_codec_generic forcedeth snd_hda_intel
      snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer snd soundcore
      snd_page_alloc i2c_nforce2 i2c_core shpchp ext4 jbd2 mbcache sr_mod cdrom sd_mod
      crc_t10dif pata_amd ata_generic pata_acpi sata_nv dm_mirror dm_region_hash
      dm_log dm_mod [last unloaded: scsi_wait_scan]
      Pid: 1940, comm: modprobe Not tainted 2.6.32-573.7.1.el6.x86_64.debug #1
      Call Trace:
       [<ffffffff8107bbc1>] ? warn_slowpath_common+0x91/0xe0
       [<ffffffff8107bcc6>] ? warn_slowpath_fmt+0x46/0x60
       [<ffffffffa00fe5b0>] ? nv_start_xmit_optimized+0x0/0x860 [forcedeth]
       [<ffffffff814b3593>] ? netpoll_send_skb_on_dev+0x243/0x250
       [<ffffffff814b37c9>] ? netpoll_send_udp+0x229/0x270
       [<ffffffffa02e3299>] ? write_msg+0x39/0x110 [netconsole]
       [<ffffffffa02e331b>] ? write_msg+0xbb/0x110 [netconsole]
       [<ffffffff8107bd55>] ? __call_console_drivers+0x75/0x90
       [<ffffffff8107bdba>] ? _call_console_drivers+0x4a/0x80
       [<ffffffff8107c445>] ? release_console_sem+0xe5/0x250
       [<ffffffff8107d200>] ? register_console+0x190/0x3e0
       [<ffffffffa02e71a6>] ? init_netconsole+0x1a6/0x216 [netconsole]
       [<ffffffffa02e7000>] ? init_netconsole+0x0/0x216 [netconsole]
       [<ffffffff810020d0>] ? do_one_initcall+0xc0/0x280
       [<ffffffff810d4933>] ? sys_init_module+0xe3/0x260
       [<ffffffff8100b0d2>] ? system_call_fastpath+0x16/0x1b
      ---[ end trace f349c7af88e6a6d5 ]---
      console [netcon0] enabled
      netconsole: network logging started
      
      Fix it by modifying the forcedeth code to use
      disable_irq_nosync_lockdep_irqsavedisable_irq_nosync_lockdep_irqsave instead,
      which saves and restores irq state properly.  This also saves us a little code
      in the process
      
      Tested by the reporter, with successful restuls
      
      Patch applies to the head of the net tree
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: "David S. Miller" <davem@davemloft.net>
      Reported-by: NVasily Averin <vvs@sw.ru>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0b7c8743
  5. 27 10月, 2015 8 次提交
  6. 26 10月, 2015 7 次提交
  7. 23 10月, 2015 7 次提交
  8. 22 10月, 2015 4 次提交
  9. 21 10月, 2015 1 次提交