** Changed in: linux (Ubuntu Bionic)
       Status: In Progress => Fix Committed

** Changed in: linux (Ubuntu Disco)
       Status: In Progress => Fix Committed

** Changed in: linux (Ubuntu Eoan)
       Status: In Progress => Fix Committed

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1853989

Title:
  [roce-1126]RDMA/hns: bugfix for slab-out-of-bounds when loading hip08
  driver

Status in kunpeng920:
  In Progress
Status in kunpeng920 ubuntu-18.04 series:
  In Progress
Status in kunpeng920 ubuntu-18.04-hwe series:
  Fix Committed
Status in kunpeng920 ubuntu-19.04 series:
  In Progress
Status in kunpeng920 ubuntu-19.10 series:
  In Progress
Status in kunpeng920 ubuntu-20.04 series:
  Fix Committed
Status in kunpeng920 upstream-kernel series:
  Fix Released
Status in linux package in Ubuntu:
  Invalid
Status in linux source package in Bionic:
  Fix Committed
Status in linux source package in Disco:
  Fix Committed
Status in linux source package in Eoan:
  Fix Committed

Bug description:
  [Impact]
    KASAN reports slab-out-of-bounds in RDMA/hns driver

  [Testcase]
    Enable KASAN and modprobe RDMA/hns driver

  [Regression Risk]
    Only RDMA/hns driver modified. lowest risk to other drivers/platforms

  [Bug Description]
  KASAN: slab-out-of-bounds in hns_roce_table_mhop_put+0x584/0x828
      [hns_roce]
      Read of size 8 at addr ffff802185e08300 by task rmmod/270

      Call trace:
      dump_backtrace+0x0/0x1e8
      show_stack+0x14/0x20
      dump_stack+0xc4/0xfc
      print_address_description+0x60/0x270
      __kasan_report+0x164/0x1b8
      kasan_report+0xc/0x18
      __asan_load8+0x84/0xa8
      hns_roce_table_mhop_put+0x584/0x828 [hns_roce]
      hns_roce_table_put+0x174/0x1a0 [hns_roce]
      hns_roce_mr_free+0x124/0x210 [hns_roce]
      hns_roce_dereg_mr+0x90/0xb8 [hns_roce]
      ib_dealloc_pd_user+0x60/0xf0
      ib_mad_port_close+0x128/0x1d8
      ib_mad_remove_device+0x94/0x118
      remove_client_context+0xa0/0xe0
      disable_device+0xfc/0x1c0
      __ib_unregister_device+0x60/0xe0
      ib_unregister_device+0x24/0x38
      hns_roce_exit+0x3c/0x138 [hns_roce]
      __hns_roce_hw_v2_uninit_instance.isra.30+0x28/0x50 [hns_roce_hw_v2]
      hns_roce_hw_v2_uninit_instance+0x44/0x60 [hns_roce_hw_v2]
      hclge_uninit_client_instance+0x15c/0x238 [hclge]
      hnae3_uninit_client_instance+0x84/0xa8 [hnae3]
      hnae3_unregister_client+0x84/0x158 [hnae3]
      hns_roce_hw_v2_exit+0x14/0x20 [hns_roce_hw_v2]
      __arm64_sys_delete_module+0x20c/0x308
      el0_svc_handler+0xbc/0x210
      el0_svc+0x8/0xc

      Allocated by task 255:
      __kasan_kmalloc.isra.0+0xd0/0x180
      kasan_kmalloc+0xc/0x18
      __kmalloc+0x16c/0x328
      hns_roce_init_hem_table+0x20c/0x428 [hns_roce]
      hns_roce_init+0x214/0xfe0 [hns_roce]
      __hns_roce_hw_v2_init_instance+0x284/0x330 [hns_roce_hw_v2]
      hns_roce_hw_v2_init_instance+0xd0/0x1b8 [hns_roce_hw_v2]
      hclge_init_roce_client_instance+0x180/0x310 [hclge]
      hclge_init_client_instance+0xcc/0x508 [hclge]
      hnae3_init_client_instance.part.3+0x3c/0x80 [hnae3]
      hnae3_register_client+0x134/0x1a8 [hnae3]
      0xffff200009c00014
      do_one_initcall+0x9c/0x3e0
      do_init_module+0xd4/0x2d8
      load_module+0x3284/0x3690
      __se_sys_init_module+0x274/0x308
      __arm64_sys_init_module+0x40/0x50
      el0_svc_handler+0xbc/0x210
      el0_svc+0x8/0xc

      Freed by task 0:
      (stack is not available)

      The buggy address belongs to the object at ffff802185e06300
      which belongs to the cache kmalloc-8k of size 8192
      The buggy address is located 0 bytes to the right of
      8192-byte region [ffff802185e06300, ffff802185e08300)
      The buggy address belongs to the page:
      page:ffff7fe008617800 refcount:1 mapcount:0 mapping:ffff802340020e00 
index:0x0
      compound_mapcount: 0
      flags: 0x5fffe00000010200(slab|head)
      raw: 5fffe00000010200 dead000000000100 dead000000000200 ffff802340020e00
      raw: 0000000000000000 00000000803e003e 00000001ffffffff 0000000000000000
      page dumped because: kasan: bad access detected
       Memory state around the buggy address:
      ffff802185e08200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ffff802185e08280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      >ffff802185e08300: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      ^
      ffff802185e08380: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      ffff802185e08400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ==================================================================
      Disabling lock debugging due to kernel taint

  [Steps to Reproduce]
  Enable KASAN and configure PAGE_SIZE to 64K, insmod hns roce driver and then 
rmmod it.

  [Actual Results]
  Call trace because of slab-out-of-bound.

  [Expected Results]
  Success

  [Reproducibility]
  Inevitably

  [Additional information]
  Hardware: D06 CS
  Firmware: NA
  Kernel: NA

  [Resolution]
  Not configure eq->next when number of eq_buf is 1 in eq_mhop_alloc().

  RDMA/hns: bugfix for slab-out-of-bounds when loading hip08 driver
  RDMA/hns: Bugfix for slab-out-of-bounds when unloading hip08 driver

To manage notifications about this bug go to:
https://bugs.launchpad.net/kunpeng920/+bug/1853989/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to