Skip to content
Snippets Groups Projects
  1. Jul 21, 2021
    • Uwe Kleine-König's avatar
      bus: Make remove callback return void · fc7a6209
      Uwe Kleine-König authored
      
      The driver core ignores the return value of this callback because there
      is only little it can do when a device disappears.
      
      This is the final bit of a long lasting cleanup quest where several
      buses were converted to also return void from their remove callback.
      Additionally some resource leaks were fixed that were caused by drivers
      returning an error code in the expectation that the driver won't go
      away.
      
      With struct bus_type::remove returning void it's prevented that newly
      implemented buses return an ignored error code and so don't anticipate
      wrong expectations for driver authors.
      
      Reviewed-by: Tom Rix <trix@redhat.com> (For fpga)
      Reviewed-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
      Reviewed-by: Cornelia Huck <cohuck@redhat.com> (For drivers/s390 and drivers/vfio)
      Acked-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> (For ARM, Amba and related parts)
      Acked-by: default avatarMark Brown <broonie@kernel.org>
      Acked-by: Chen-Yu Tsai <wens@csie.org> (for sunxi-rsb)
      Acked-by: default avatarPali Rohár <pali@kernel.org>
      Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org> (for media)
      Acked-by: Hans de Goede <hdegoede@redhat.com> (For drivers/platform)
      Acked-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Acked-By: default avatarVinod Koul <vkoul@kernel.org>
      Acked-by: Juergen Gross <jgross@suse.com> (For xen)
      Acked-by: Lee Jones <lee.jones@linaro.org> (For mfd)
      Acked-by: Johannes Thumshirn <jth@kernel.org> (For mcb)
      Acked-by: default avatarJohan Hovold <johan@kernel.org>
      Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> (For slimbus)
      Acked-by: Kirti Wankhede <kwankhede@nvidia.com> (For vfio)
      Acked-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
      Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> (For ulpi and typec)
      Acked-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com> (For ipack)
      Acked-by: Geoff Levand <geoff@infradead.org> (For ps3)
      Acked-by: Yehezkel Bernat <YehezkelShB@gmail.com> (For thunderbolt)
      Acked-by: Alexander Shishkin <alexander.shishkin@linux.intel.com> (For intel_th)
      Acked-by: Dominik Brodowski <linux@dominikbrodowski.net> (For pcmcia)
      Acked-by: Rafael J. Wysocki <rafael@kernel.org> (For ACPI)
      Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org> (rpmsg and apr)
      Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> (For intel-ish-hid)
      Acked-by: Dan Williams <dan.j.williams@intel.com> (For CXL, DAX, and NVDIMM)
      Acked-by: William Breathitt Gray <vilhelm.gray@gmail.com> (For isa)
      Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (For firewire)
      Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> (For hid)
      Acked-by: Thorsten Scherer <t.scherer@eckelmann.de> (For siox)
      Acked-by: Sven Van Asbroeck <TheSven73@gmail.com> (For anybuss)
      Acked-by: Ulf Hansson <ulf.hansson@linaro.org> (For MMC)
      Acked-by: Wolfram Sang <wsa@kernel.org> # for I2C
      Acked-by: default avatarSudeep Holla <sudeep.holla@arm.com>
      Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Acked-by: default avatarFinn Thain <fthain@linux-m68k.org>
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Link: https://lore.kernel.org/r/20210713193522.1770306-6-u.kleine-koenig@pengutronix.de
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fc7a6209
  2. Jun 29, 2021
  3. Jun 09, 2021
  4. Apr 24, 2021
    • Jae Hyun Yoo's avatar
      Revert "i3c master: fix missing destroy_workqueue() on error in i3c_master_register" · 0d95f41e
      Jae Hyun Yoo authored
      
      Adding the destroy_workqueue call in i3c_master_register introduced below
      kernel warning because it makes duplicate destroy_workqueue calls when
      i3c_master_register fails after allocating the workqueue. The workqueue will
      be destroyed by i3c_masterdev_release which is called by put_device at the
      end of the i3c_master_register function eventually in failure cases so the
      workqueue doesn't need to be destroyed in i3c_master_register.
      
      [    6.972952] WARNING: CPU: 1 PID: 1 at lib/list_debug.c:48 __list_del_entry_valid+0x9c/0xf4
      [    6.982205] list_del corruption, 8fe03c08->prev is LIST_POISON2 (00000122)
      [    6.989910] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G        W         5.10.23-c12838a-dirty-31dc772 #1
      [    7.000295] Hardware name: Generic DT based system
      [    7.005638] Backtrace:
      [    7.008369] [<809133f0>] (dump_backtrace) from [<80913644>] (show_stack+0x20/0x24)
      [    7.016819]  r7:00000030 r6:60000013 r5:00000000 r4:813b5d40
      [    7.023137] [<80913624>] (show_stack) from [<8091e1a0>] (dump_stack+0x9c/0xb0)
      [    7.031201] [<8091e104>] (dump_stack) from [<8011fa30>] (__warn+0xf8/0x154)
      [    7.038972]  r7:00000030 r6:00000009 r5:804fa1c8 r4:80b6eca4
      [    7.045289] [<8011f938>] (__warn) from [<80913d14>] (warn_slowpath_fmt+0x8c/0xc0)
      [    7.053641]  r7:00000030 r6:80b6eca4 r5:80b6ed74 r4:818cc000
      [    7.059960] [<80913c8c>] (warn_slowpath_fmt) from [<804fa1c8>] (__list_del_entry_valid+0x9c/0xf4)
      [    7.069866]  r9:96becf8c r8:818cc000 r7:8fe03c10 r6:8fe03c00 r5:8fe03ba0 r4:ff7ead4c
      [    7.078513] [<804fa12c>] (__list_del_entry_valid) from [<8013f0b4>] (destroy_workqueue+0x1c4/0x23c)
      [    7.088615] [<8013eef0>] (destroy_workqueue) from [<806aa124>] (i3c_masterdev_release+0x40/0xb0)
      [    7.098421]  r7:00000000 r6:81a43b80 r5:8fe65360 r4:8fe65048
      [    7.104740] [<806aa0e4>] (i3c_masterdev_release) from [<805f3f04>] (device_release+0x40/0xb0)
      [    7.114254]  r5:00000000 r4:8fe65048
      [    7.118245] [<805f3ec4>] (device_release) from [<808fe754>] (kobject_put+0xc8/0x204)
      [    7.126885]  r5:813978dc r4:8fe65048
      [    7.130877] [<808fe68c>] (kobject_put) from [<805f5fbc>] (put_device+0x20/0x24)
      [    7.139037]  r7:8fe65358 r6:8fe65368 r5:8fe65358 r4:8fe65048
      [    7.145355] [<805f5f9c>] (put_device) from [<806abac4>] (i3c_master_register+0x338/0xb00)
      [    7.154487] [<806ab78c>] (i3c_master_register) from [<806ae084>] (dw_i3c_probe+0x224/0x24c)
      [    7.163811]  r10:00000000 r9:8fe7a100 r8:00000032 r7:819fa810 r6:819fa800 r5:8fe65040
      [    7.172547]  r4:00000000
      [    7.175376] [<806ade60>] (dw_i3c_probe) from [<805fdc14>] (platform_drv_probe+0x44/0x80)
      [    7.184409]  r9:813a25c0 r8:00000000 r7:815ec114 r6:00000000 r5:813a25c0 r4:819fa810
      [    7.193053] [<805fdbd0>] (platform_drv_probe) from [<805fb83c>] (really_probe+0x108/0x50c)
      [    7.202275]  r5:815ec004 r4:819fa810
      [    7.206265] [<805fb734>] (really_probe) from [<805fc180>] (driver_probe_device+0xb4/0x190)
      [    7.215492]  r10:813dc000 r9:80c4385c r8:000000d9 r7:813a25c0 r6:819fa810 r5:00000000
      [    7.224228]  r4:813a25c0
      [    7.227055] [<805fc0cc>] (driver_probe_device) from [<805fc5cc>] (device_driver_attach+0xb8/0xc0)
      [    7.236959]  r9:80c4385c r8:000000d9 r7:813a25c0 r6:819fa854 r4:819fa810
      [    7.244439] [<805fc514>] (device_driver_attach) from [<805fc65c>] (__driver_attach+0x88/0x16c)
      [    7.254051]  r7:00000000 r6:819fa810 r5:00000000 r4:813a25c0
      [    7.260369] [<805fc5d4>] (__driver_attach) from [<805f954c>] (bus_for_each_dev+0x88/0xc8)
      [    7.269489]  r7:00000000 r6:818cc000 r5:805fc5d4 r4:813a25c0
      [    7.275806] [<805f94c4>] (bus_for_each_dev) from [<805fc76c>] (driver_attach+0x2c/0x30)
      [    7.284739]  r7:81397c98 r6:00000000 r5:8fe7db80 r4:813a25c0
      [    7.291057] [<805fc740>] (driver_attach) from [<805f9eec>] (bus_add_driver+0x120/0x200)
      [    7.299984] [<805f9dcc>] (bus_add_driver) from [<805fce44>] (driver_register+0x98/0x128)
      [    7.309005]  r7:80c4383c r6:00000000 r5:00000000 r4:813a25c0
      [    7.315323] [<805fcdac>] (driver_register) from [<805fedb4>] (__platform_driver_register+0x50/0x58)
      [    7.325410]  r5:818cc000 r4:81397c98
      [    7.329404] [<805fed64>] (__platform_driver_register) from [<80c23398>] (dw_i3c_driver_init+0x24/0x28)
      [    7.339790]  r5:818cc000 r4:80c23374
      [    7.343784] [<80c23374>] (dw_i3c_driver_init) from [<80c01300>] (do_one_initcall+0xac/0x1d0)
      [    7.353206] [<80c01254>] (do_one_initcall) from [<80c01630>] (kernel_init_freeable+0x1a8/0x204)
      [    7.362916]  r8:000000d9 r7:80c4383c r6:00000007 r5:819ca2c0 r4:80c67680
      [    7.370398] [<80c01488>] (kernel_init_freeable) from [<8091eb18>] (kernel_init+0x18/0x12c)
      [    7.379616]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:8091eb00
      [    7.388343]  r4:00000000
      [    7.391170] [<8091eb00>] (kernel_init) from [<80100148>] (ret_from_fork+0x14/0x2c)
      [    7.399607] Exception stack(0x818cdfb0 to 0x818cdff8)
      [    7.405243] dfa0:                                     00000000 00000000 00000000 00000000
      [    7.414371] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [    7.423499] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
      [    7.430879]  r5:8091eb00 r4:00000000
      
      This reverts commit 59165d16.
      
      Fixes: 59165d16 ("i3c master: fix missing destroy_workqueue() on error in i3c_master_register")
      Signed-off-by: default avatarJae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Link: https://lore.kernel.org/r/20210408172803.24599-1-jae.hyun.yoo@linux.intel.com
      0d95f41e
  5. Mar 09, 2021
  6. Feb 05, 2021
  7. Feb 01, 2021
  8. Dec 31, 2020
  9. Dec 17, 2020
  10. Nov 25, 2020
  11. Nov 23, 2020
  12. Oct 07, 2020
  13. Sep 14, 2020
  14. Aug 23, 2020
  15. Aug 19, 2020
  16. Apr 16, 2020
  17. Mar 29, 2020
  18. Feb 28, 2020
  19. Feb 27, 2020
  20. Feb 17, 2020
  21. Jan 13, 2020
  22. Dec 09, 2019
  23. Oct 31, 2019
  24. Oct 01, 2019
  25. Aug 27, 2019
  26. Aug 12, 2019
    • Wenwen Wang's avatar
      i3c: master: fix a memory leak bug · 7afe9a4e
      Wenwen Wang authored and Boris Brezillon's avatar Boris Brezillon committed
      
      In i3c_master_getmwl_locked(), the buffer used for the dest payload data is
      allocated using kzalloc() in i3c_ccc_cmd_dest_init(). Later on, the length
      of the dest payload data is checked against 'sizeof(*mwl)'. If they are not
      equal, -EIO is returned to indicate the error. However, the allocated
      buffer is not deallocated on this path, leading to a memory leak.
      
      To fix the above issue, free the buffer before returning the error.
      
      Signed-off-by: default avatarWenwen Wang <wenwen@cs.uga.edu>
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
      7afe9a4e
  27. Aug 11, 2019
  28. Jul 27, 2019
Loading