1. 19 5月, 2021 5 次提交
    • Y
      net: hns3: check the return of skb_checksum_help() · 9bb5a495
      Yunsheng Lin 提交于
      Currently skb_checksum_help()'s return is ignored, but it may
      return error when it fails to allocate memory when linearizing.
      
      So adds checking for the return of skb_checksum_help().
      
      Fixes: 76ad4f0e("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
      Fixes: 3db084d2("net: hns3: Fix for vxlan tx checksum bug")
      Signed-off-by: NYunsheng Lin <linyunsheng@huawei.com>
      Signed-off-by: NHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9bb5a495
    • H
      net: hns3: fix user's coalesce configuration lost issue · 73a13d8d
      Huazhong Tan 提交于
      Currently, when adaptive is on, the user's coalesce configuration
      may be overwritten by the dynamic one. The reason is that user's
      configurations are saved in struct hns3_enet_tqp_vector whose
      value maybe changed by the dynamic algorithm. To fix it, use
      struct hns3_nic_priv instead of struct hns3_enet_tqp_vector to
      save and get the user's configuration.
      
      BTW, operations of storing and restoring coalesce info in the reset
      process are unnecessary now, so remove them as well.
      
      Fixes: 434776a5 ("net: hns3: add ethtool_ops.set_coalesce support to PF")
      Fixes: 7e96adc4 ("net: hns3: add ethtool_ops.get_coalesce support to PF")
      Signed-off-by: NHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      73a13d8d
    • J
      net: hns3: put off calling register_netdev() until client initialize complete · a289a7e5
      Jian Shen 提交于
      Currently, the netdevice is registered before client initializing
      complete. So there is a timewindow between netdevice available
      and usable. In this case, if user try to change the channel number
      or ring param, it may cause the hns3_set_rx_cpu_rmap() being called
      twice, and report bug.
      
      [47199.416502] hns3 0000:35:00.0 eth1: set channels: tqp_num=1, rxfh=0
      [47199.430340] hns3 0000:35:00.0 eth1: already uninitialized
      [47199.438554] hns3 0000:35:00.0: rss changes from 4 to 1
      [47199.511854] hns3 0000:35:00.0: Channels changed, rss_size from 4 to 1, tqps from 4 to 1
      [47200.163524] ------------[ cut here ]------------
      [47200.171674] kernel BUG at lib/cpu_rmap.c:142!
      [47200.177847] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
      [47200.185259] Modules linked in: hclge(+) hns3(-) hns3_cae(O) hns_roce_hw_v2 hnae3 vfio_iommu_type1 vfio_pci vfio_virqfd vfio pv680_mii(O) [last unloaded: hclge]
      [47200.205912] CPU: 1 PID: 8260 Comm: ethtool Tainted: G           O      5.11.0-rc3+ #1
      [47200.215601] Hardware name:  , xxxxxx 02/04/2021
      [47200.223052] pstate: 60400009 (nZCv daif +PAN -UAO -TCO BTYPE=--)
      [47200.230188] pc : cpu_rmap_add+0x38/0x40
      [47200.237472] lr : irq_cpu_rmap_add+0x84/0x140
      [47200.243291] sp : ffff800010e93a30
      [47200.247295] x29: ffff800010e93a30 x28: ffff082100584880
      [47200.254155] x27: 0000000000000000 x26: 0000000000000000
      [47200.260712] x25: 0000000000000000 x24: 0000000000000004
      [47200.267241] x23: ffff08209ba03000 x22: ffff08209ba038c0
      [47200.273789] x21: 000000000000003f x20: ffff0820e2bc1680
      [47200.280400] x19: ffff0820c970ec80 x18: 00000000000000c0
      [47200.286944] x17: 0000000000000000 x16: ffffb43debe4a0d0
      [47200.293456] x15: fffffc2082990600 x14: dead000000000122
      [47200.300059] x13: ffffffffffffffff x12: 000000000000003e
      [47200.306606] x11: ffff0820815b8080 x10: ffff53e411988000
      [47200.313171] x9 : 0000000000000000 x8 : ffff0820e2bc1700
      [47200.319682] x7 : 0000000000000000 x6 : 000000000000003f
      [47200.326170] x5 : 0000000000000040 x4 : ffff800010e93a20
      [47200.332656] x3 : 0000000000000004 x2 : ffff0820c970ec80
      [47200.339168] x1 : ffff0820e2bc1680 x0 : 0000000000000004
      [47200.346058] Call trace:
      [47200.349324]  cpu_rmap_add+0x38/0x40
      [47200.354300]  hns3_set_rx_cpu_rmap+0x6c/0xe0 [hns3]
      [47200.362294]  hns3_reset_notify_init_enet+0x1cc/0x340 [hns3]
      [47200.370049]  hns3_change_channels+0x40/0xb0 [hns3]
      [47200.376770]  hns3_set_channels+0x12c/0x2a0 [hns3]
      [47200.383353]  ethtool_set_channels+0x140/0x250
      [47200.389772]  dev_ethtool+0x714/0x23d0
      [47200.394440]  dev_ioctl+0x4cc/0x640
      [47200.399277]  sock_do_ioctl+0x100/0x2a0
      [47200.404574]  sock_ioctl+0x28c/0x470
      [47200.409079]  __arm64_sys_ioctl+0xb4/0x100
      [47200.415217]  el0_svc_common.constprop.0+0x84/0x210
      [47200.422088]  do_el0_svc+0x28/0x34
      [47200.426387]  el0_svc+0x28/0x70
      [47200.431308]  el0_sync_handler+0x1a4/0x1b0
      [47200.436477]  el0_sync+0x174/0x180
      [47200.441562] Code: 11000405 79000c45 f8247861 d65f03c0 (d4210000)
      [47200.448869] ---[ end trace a01efe4ce42e5f34 ]---
      
      The process is like below:
      excuting hns3_client_init
      |
      register_netdev()
      |                           hns3_set_channels()
      |                           |
      hns3_set_rx_cpu_rmap()      hns3_reset_notify_uninit_enet()
      |                               |
      |                            quit without calling function
      |                            hns3_free_rx_cpu_rmap for flag
      |                            HNS3_NIC_STATE_INITED is unset.
      |                           |
      |                           hns3_reset_notify_init_enet()
      |                               |
      set HNS3_NIC_STATE_INITED    call hns3_set_rx_cpu_rmap()-- crash
      
      Fix it by calling register_netdev() at the end of function
      hns3_client_init().
      
      Fixes: 08a10068 ("net: hns3: re-organize vector handle")
      Signed-off-by: NJian Shen <shenjian15@huawei.com>
      Signed-off-by: NHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a289a7e5
    • Jiaran Zhang's avatar
      net: hns3: fix incorrect resp_msg issue · a710b9ff
      Jiaran Zhang 提交于
      In hclge_mbx_handler(), if there are two consecutive mailbox
      messages that requires resp_msg, the resp_msg is not cleared
      after processing the first message, which will cause the resp_msg
      data of second message incorrect.
      
      Fix it by clearing the resp_msg before processing every mailbox
      message.
      
      Fixes: bb5790b7 ("net: hns3: refactor mailbox response scheme between PF and VF")
      Signed-off-by: Jiaran Zhang's avatarJiaran Zhang <zhangjiaran@huawei.com>
      Signed-off-by: NHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a710b9ff
    • M
      net: lan78xx: advertise tx software timestamping support · 33e6b167
      Markus Bloechl 提交于
      lan78xx already calls skb_tx_timestamp() in its lan78xx_start_xmit().
      Override .get_ts_info to also advertise this capability
      (SOF_TIMESTAMPING_TX_SOFTWARE) via ethtool.
      Signed-off-by: NMarkus Blöchl <markus.bloechl@ipetronik.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      33e6b167
  2. 18 5月, 2021 12 次提交
    • D
      net: mdiobus: get rid of a BUG_ON() · 1dde47a6
      Dan Carpenter 提交于
      We spotted a bug recently during a review where a driver was
      unregistering a bus that wasn't registered, which would trigger this
      BUG_ON().  Let's handle that situation more gracefully, and just print
      a warning and return.
      Reported-by: NRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: NRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1dde47a6
    • D
      gve: Correct SKB queue index validation. · fbd4a28b
      David Awogbemila 提交于
      SKBs with skb_get_queue_mapping(skb) == tx_cfg.num_queues should also be
      considered invalid.
      
      Fixes: f5cedc84 ("gve: Add transmit and receive support")
      Signed-off-by: NDavid Awogbemila <awogbemila@google.com>
      Acked-by: NWillem de Brujin <willemb@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fbd4a28b
    • C
      gve: Upgrade memory barrier in poll routine · f8178183
      Catherine Sullivan 提交于
      As currently written, if the driver checks for more work (via
      gve_tx_poll or gve_rx_poll) before the device posts work and the
      irq doorbell is not unmasked
      (via iowrite32be(GVE_IRQ_ACK | GVE_IRQ_EVENT, ...)) before the device
      attempts to raise an interrupt, an interrupt is lost and this could
      potentially lead to the traffic being completely halted. For
      example, if a tx queue has already been stopped, the driver won't get
      the chance to complete work and egress will be halted.
      
      We need a full memory barrier in the poll
      routine to ensure that the irq doorbell is unmasked before the driver
      checks for more work.
      
      Fixes: f5cedc84 ("gve: Add transmit and receive support")
      Signed-off-by: NCatherine Sullivan <csully@google.com>
      Signed-off-by: NDavid Awogbemila <awogbemila@google.com>
      Acked-by: NWillem de Brujin <willemb@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f8178183
    • D
      gve: Add NULL pointer checks when freeing irqs. · 5218e919
      David Awogbemila 提交于
      When freeing notification blocks, we index priv->msix_vectors.
      If we failed to allocate priv->msix_vectors (see abort_with_msix_vectors)
      this could lead to a NULL pointer dereference if the driver is unloaded.
      
      Fixes: 893ce44d ("gve: Add basic driver framework for Compute Engine Virtual NIC")
      Signed-off-by: NDavid Awogbemila <awogbemila@google.com>
      Acked-by: NWillem de Brujin <willemb@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5218e919
    • D
      gve: Update mgmt_msix_idx if num_ntfy changes · e96b491a
      David Awogbemila 提交于
      If we do not get the expected number of vectors from
      pci_enable_msix_range, we update priv->num_ntfy_blks but not
      priv->mgmt_msix_idx. This patch fixes this so that priv->mgmt_msix_idx
      is updated accordingly.
      
      Fixes: f5cedc84 ("gve: Add transmit and receive support")
      Signed-off-by: NDavid Awogbemila <awogbemila@google.com>
      Acked-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e96b491a
    • C
      gve: Check TX QPL was actually assigned · 5aec55b4
      Catherine Sullivan 提交于
      Correctly check the TX QPL was assigned and unassigned if
      other steps in the allocation fail.
      
      Fixes: f5cedc84 (gve: Add transmit and receive support)
      Signed-off-by: NCatherine Sullivan <csully@google.com>
      Signed-off-by: NDavid Awogbemila <awogbemila@google.com>
      Acked-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5aec55b4
    • J
      bonding: init notify_work earlier to avoid uninitialized use · 35d96e63
      Johannes Berg 提交于
      If bond_kobj_init() or later kzalloc() in bond_alloc_slave() fail,
      then we call kobject_put() on the slave->kobj. This in turn calls
      the release function slave_kobj_release() which will always try to
      cancel_delayed_work_sync(&slave->notify_work), which shouldn't be
      done on an uninitialized work struct.
      
      Always initialize the work struct earlier to avoid problems here.
      
      Syzbot bisected this down to a completely pointless commit, some
      fault injection may have been at work here that caused the alloc
      failure in the first place, which may interact badly with bisect.
      
      Reported-by: syzbot+bfda097c12a00c8cae67@syzkaller.appspotmail.com
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Acked-by: NJay Vosburgh <jay.vosburgh@canonical.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      35d96e63
    • Z
      isdn: mISDN: netjet: Fix crash in nj_probe: · 9f6f8525
      Zheyu Ma 提交于
      'nj_setup' in netjet.c might fail with -EIO and in this case
      'card->irq' is initialized and is bigger than zero. A subsequent call to
      'nj_release' will free the irq that has not been requested.
      
      Fix this bug by deleting the previous assignment to 'card->irq' and just
      keep the assignment before 'request_irq'.
      
      The KASAN's log reveals it:
      
      [    3.354615 ] WARNING: CPU: 0 PID: 1 at kernel/irq/manage.c:1826
      free_irq+0x100/0x480
      [    3.355112 ] Modules linked in:
      [    3.355310 ] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
      5.13.0-rc1-00144-g25a12987 #13
      [    3.355816 ] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
      rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
      [    3.356552 ] RIP: 0010:free_irq+0x100/0x480
      [    3.356820 ] Code: 6e 08 74 6f 4d 89 f4 e8 5e ac 09 00 4d 8b 74 24 18
      4d 85 f6 75 e3 e8 4f ac 09 00 8b 75 c8 48 c7 c7 78 c1 2e 85 e8 e0 cf f5
      ff <0f> 0b 48 8b 75 c0 4c 89 ff e8 72 33 0b 03 48 8b 43 40 4c 8b a0 80
      [    3.358012 ] RSP: 0000:ffffc90000017b48 EFLAGS: 00010082
      [    3.358357 ] RAX: 0000000000000000 RBX: ffff888104dc8000 RCX:
      0000000000000000
      [    3.358814 ] RDX: ffff8881003c8000 RSI: ffffffff8124a9e6 RDI:
      00000000ffffffff
      [    3.359272 ] RBP: ffffc90000017b88 R08: 0000000000000000 R09:
      0000000000000000
      [    3.359732 ] R10: ffffc900000179f0 R11: 0000000000001d04 R12:
      0000000000000000
      [    3.360195 ] R13: ffff888107dc6000 R14: ffff888107dc6928 R15:
      ffff888104dc80a8
      [    3.360652 ] FS:  0000000000000000(0000) GS:ffff88817bc00000(0000)
      knlGS:0000000000000000
      [    3.361170 ] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [    3.361538 ] CR2: 0000000000000000 CR3: 000000000582e000 CR4:
      00000000000006f0
      [    3.362003 ] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
      0000000000000000
      [    3.362175 ] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:
      0000000000000400
      [    3.362175 ] Call Trace:
      [    3.362175 ]  nj_release+0x51/0x1e0
      [    3.362175 ]  nj_probe+0x450/0x950
      [    3.362175 ]  ? pci_device_remove+0x110/0x110
      [    3.362175 ]  local_pci_probe+0x45/0xa0
      [    3.362175 ]  pci_device_probe+0x12b/0x1d0
      [    3.362175 ]  really_probe+0x2a9/0x610
      [    3.362175 ]  driver_probe_device+0x90/0x1d0
      [    3.362175 ]  ? mutex_lock_nested+0x1b/0x20
      [    3.362175 ]  device_driver_attach+0x68/0x70
      [    3.362175 ]  __driver_attach+0x124/0x1b0
      [    3.362175 ]  ? device_driver_attach+0x70/0x70
      [    3.362175 ]  bus_for_each_dev+0xbb/0x110
      [    3.362175 ]  ? rdinit_setup+0x45/0x45
      [    3.362175 ]  driver_attach+0x27/0x30
      [    3.362175 ]  bus_add_driver+0x1eb/0x2a0
      [    3.362175 ]  driver_register+0xa9/0x180
      [    3.362175 ]  __pci_register_driver+0x82/0x90
      [    3.362175 ]  ? w6692_init+0x38/0x38
      [    3.362175 ]  nj_init+0x36/0x38
      [    3.362175 ]  do_one_initcall+0x7f/0x3d0
      [    3.362175 ]  ? rdinit_setup+0x45/0x45
      [    3.362175 ]  ? rcu_read_lock_sched_held+0x4f/0x80
      [    3.362175 ]  kernel_init_freeable+0x2aa/0x301
      [    3.362175 ]  ? rest_init+0x2c0/0x2c0
      [    3.362175 ]  kernel_init+0x18/0x190
      [    3.362175 ]  ? rest_init+0x2c0/0x2c0
      [    3.362175 ]  ? rest_init+0x2c0/0x2c0
      [    3.362175 ]  ret_from_fork+0x1f/0x30
      [    3.362175 ] Kernel panic - not syncing: panic_on_warn set ...
      [    3.362175 ] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
      5.13.0-rc1-00144-g25a12987 #13
      [    3.362175 ] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
      rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
      [    3.362175 ] Call Trace:
      [    3.362175 ]  dump_stack+0xba/0xf5
      [    3.362175 ]  ? free_irq+0x100/0x480
      [    3.362175 ]  panic+0x15a/0x3f2
      [    3.362175 ]  ? __warn+0xf2/0x150
      [    3.362175 ]  ? free_irq+0x100/0x480
      [    3.362175 ]  __warn+0x108/0x150
      [    3.362175 ]  ? free_irq+0x100/0x480
      [    3.362175 ]  report_bug+0x119/0x1c0
      [    3.362175 ]  handle_bug+0x3b/0x80
      [    3.362175 ]  exc_invalid_op+0x18/0x70
      [    3.362175 ]  asm_exc_invalid_op+0x12/0x20
      [    3.362175 ] RIP: 0010:free_irq+0x100/0x480
      [    3.362175 ] Code: 6e 08 74 6f 4d 89 f4 e8 5e ac 09 00 4d 8b 74 24 18
      4d 85 f6 75 e3 e8 4f ac 09 00 8b 75 c8 48 c7 c7 78 c1 2e 85 e8 e0 cf f5
      ff <0f> 0b 48 8b 75 c0 4c 89 ff e8 72 33 0b 03 48 8b 43 40 4c 8b a0 80
      [    3.362175 ] RSP: 0000:ffffc90000017b48 EFLAGS: 00010082
      [    3.362175 ] RAX: 0000000000000000 RBX: ffff888104dc8000 RCX:
      0000000000000000
      [    3.362175 ] RDX: ffff8881003c8000 RSI: ffffffff8124a9e6 RDI:
      00000000ffffffff
      [    3.362175 ] RBP: ffffc90000017b88 R08: 0000000000000000 R09:
      0000000000000000
      [    3.362175 ] R10: ffffc900000179f0 R11: 0000000000001d04 R12:
      0000000000000000
      [    3.362175 ] R13: ffff888107dc6000 R14: ffff888107dc6928 R15:
      ffff888104dc80a8
      [    3.362175 ]  ? vprintk+0x76/0x150
      [    3.362175 ]  ? free_irq+0x100/0x480
      [    3.362175 ]  nj_release+0x51/0x1e0
      [    3.362175 ]  nj_probe+0x450/0x950
      [    3.362175 ]  ? pci_device_remove+0x110/0x110
      [    3.362175 ]  local_pci_probe+0x45/0xa0
      [    3.362175 ]  pci_device_probe+0x12b/0x1d0
      [    3.362175 ]  really_probe+0x2a9/0x610
      [    3.362175 ]  driver_probe_device+0x90/0x1d0
      [    3.362175 ]  ? mutex_lock_nested+0x1b/0x20
      [    3.362175 ]  device_driver_attach+0x68/0x70
      [    3.362175 ]  __driver_attach+0x124/0x1b0
      [    3.362175 ]  ? device_driver_attach+0x70/0x70
      [    3.362175 ]  bus_for_each_dev+0xbb/0x110
      [    3.362175 ]  ? rdinit_setup+0x45/0x45
      [    3.362175 ]  driver_attach+0x27/0x30
      [    3.362175 ]  bus_add_driver+0x1eb/0x2a0
      [    3.362175 ]  driver_register+0xa9/0x180
      [    3.362175 ]  __pci_register_driver+0x82/0x90
      [    3.362175 ]  ? w6692_init+0x38/0x38
      [    3.362175 ]  nj_init+0x36/0x38
      [    3.362175 ]  do_one_initcall+0x7f/0x3d0
      [    3.362175 ]  ? rdinit_setup+0x45/0x45
      [    3.362175 ]  ? rcu_read_lock_sched_held+0x4f/0x80
      [    3.362175 ]  kernel_init_freeable+0x2aa/0x301
      [    3.362175 ]  ? rest_init+0x2c0/0x2c0
      [    3.362175 ]  kernel_init+0x18/0x190
      [    3.362175 ]  ? rest_init+0x2c0/0x2c0
      [    3.362175 ]  ? rest_init+0x2c0/0x2c0
      [    3.362175 ]  ret_from_fork+0x1f/0x30
      [    3.362175 ] Dumping ftrace buffer:
      [    3.362175 ]    (ftrace buffer empty)
      [    3.362175 ] Kernel Offset: disabled
      [    3.362175 ] Rebooting in 1 seconds..
      Reported-by: NZheyu Ma <zheyuma97@gmail.com>
      Signed-off-by: NZheyu Ma <zheyuma97@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9f6f8525
    • M
      bnxt_en: Fix context memory setup for 64K page size. · 702279d2
      Michael Chan 提交于
      There was a typo in the code that checks for 64K BNXT_PAGE_SHIFT in
      bnxt_hwrm_set_pg_attr().  Fix it and make the code more understandable
      with a new macro BNXT_SET_CTX_PAGE_ATTR().
      
      Fixes: 1b9394e5 ("bnxt_en: Configure context memory on new devices.")
      Reviewed-by: NEdwin Peer <edwin.peer@broadcom.com>
      Signed-off-by: NMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      702279d2
    • A
      bnxt_en: Include new P5 HV definition in VF check. · ab21494b
      Andy Gospodarek 提交于
      Otherwise, some of the recently added HyperV VF IDs would not be
      recognized as VF devices and they would not initialize properly.
      
      Fixes: 7fbf359b ("bnxt_en: Add PCI IDs for Hyper-V VF devices.")
      Reviewed-by: NEdwin Peer <edwin.peer@broadcom.com>
      Signed-off-by: NAndy Gospodarek <gospo@broadcom.com>
      Signed-off-by: NMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ab21494b
    • Z
      net: bnx2: Fix error return code in bnx2_init_board() · 28c66b6d
      Zhen Lei 提交于
      Fix to return -EPERM from the error handling case instead of 0, as done
      elsewhere in this function.
      
      Fixes: b6016b76 ("[BNX2]: New Broadcom gigabit network driver.")
      Reported-by: NHulk Robot <hulkci@huawei.com>
      Signed-off-by: NZhen Lei <thunder.leizhen@huawei.com>
      Reviewed-by: NMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      28c66b6d
    • D
      net: hso: check for allocation failure in hso_create_bulk_serial_device() · 31db0dbd
      Dan Carpenter 提交于
      In current kernels, small allocations never actually fail so this
      patch shouldn't affect runtime.
      
      Originally this error handling code written with the idea that if
      the "serial->tiocmget" allocation failed, then we would continue
      operating instead of bailing out early.  But in later years we added
      an unchecked dereference on the next line.
      
      	serial->tiocmget->serial_state_notification = kzalloc();
              ^^^^^^^^^^^^^^^^^^
      
      Since these allocations are never going fail in real life, this is
      mostly a philosophical debate, but I think bailing out early is the
      correct behavior that the user would want.  And generally it's safer to
      bail as soon an error happens.
      
      Fixes: af0de130 ("usb: hso: obey DMA rules in tiocmget")
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: NJohan Hovold <johan@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      31db0dbd
  3. 15 5月, 2021 1 次提交
  4. 14 5月, 2021 4 次提交
  5. 13 5月, 2021 6 次提交
  6. 12 5月, 2021 11 次提交
  7. 11 5月, 2021 1 次提交