Skip to content
Snippets Groups Projects
  1. Nov 06, 2021
  2. Sep 25, 2021
  3. Sep 14, 2021
    • Linus Torvalds's avatar
      memblock: introduce saner 'memblock_free_ptr()' interface · 77e02cf5
      Linus Torvalds authored
      The boot-time allocation interface for memblock is a mess, with
      'memblock_alloc()' returning a virtual pointer, but then you are
      supposed to free it with 'memblock_free()' that takes a _physical_
      address.
      
      Not only is that all kinds of strange and illogical, but it actually
      causes bugs, when people then use it like a normal allocation function,
      and it fails spectacularly on a NULL pointer:
      
         https://lore.kernel.org/all/20210912140820.GD25450@xsang-OptiPlex-9020/
      
      or just random memory corruption if the debug checks don't catch it:
      
         https://lore.kernel.org/all/61ab2d0c-3313-aaab-514c-e15b7aa054a0@suse.cz/
      
      
      
      I really don't want to apply patches that treat the symptoms, when the
      fundamental cause is this horribly confusing interface.
      
      I started out looking at just automating a sane replacement sequence,
      but because of this mix or virtual and physical addresses, and because
      people have used the "__pa()" macro that can take either a regular
      kernel pointer, or just the raw "unsigned long" address, it's all quite
      messy.
      
      So this just introduces a new saner interface for freeing a virtual
      address that was allocated using 'memblock_alloc()', and that was kept
      as a regular kernel pointer.  And then it converts a couple of users
      that are obvious and easy to test, including the 'xbc_nodes' case in
      lib/bootconfig.c that caused problems.
      
      Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Fixes: 40caa127 ("init: bootconfig: Remove all bootconfig data when the init memory is removed")
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Mike Rapoport <rppt@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      77e02cf5
  4. Aug 19, 2021
  5. 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
  6. Apr 16, 2021
  7. Apr 14, 2021
  8. Apr 08, 2021
  9. Jan 25, 2021
  10. Dec 07, 2020
    • Finn Thain's avatar
      macintosh/adb-iop: Send correct poll command · 10199e90
      Finn Thain authored and Geert Uytterhoeven's avatar Geert Uytterhoeven committed
      
      The behaviour of the IOP firmware is not well documented but we do know
      that IOP message reply data can be used to issue new ADB commands.
      Use the message reply to better control autopoll behaviour by sending
      a Talk Register 0 command after every ADB response, not unlike the
      algorithm in the via-macii driver. This poll command is addressed to
      that device which last received a Talk command (explicit or otherwise).
      
      Cc: Joshua Thompson <funaho@jurai.org>
      Fixes: 32226e81 ("macintosh/adb-iop: Implement idle -> sending state transition")
      Tested-by: default avatarStan Johnson <userm57@yahoo.com>
      Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
      Link: https://lore.kernel.org/r/58bba4310da4c29b068345a4b36af8a531397ff7.1605847196.git.fthain@telegraphics.com.au
      
      
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      10199e90
    • Finn Thain's avatar
      macintosh/adb-iop: Always wait for reply message from IOP · 2c9cfbad
      Finn Thain authored and Geert Uytterhoeven's avatar Geert Uytterhoeven committed
      
      A recent patch incorrectly altered the adb-iop state machine behaviour
      and introduced a regression that can appear intermittently as a
      malfunctioning ADB input device. This seems to be caused when reply
      packets from different ADB commands become mixed up, especially during
      the adb bus scan. Fix this by unconditionally entering the awaiting_reply
      state after sending an explicit command, even when the ADB command won't
      generate a reply from the ADB device.
      
      It turns out that the IOP always generates reply messages, even when the
      ADB command does not produce a reply packet (e.g. ADB Listen command).
      So it's not really the ADB reply packets that are being mixed up, it's the
      IOP messages that enclose them. The bug goes like this:
      
        1. CPU sends a message to the IOP, expecting no response because this
           message contains an ADB Listen command. The ADB command is now
           considered complete.
      
        2. CPU sends a second message to the IOP, this time expecting a
           response because this message contains an ADB Talk command. This
           ADB command needs a reply before it can be completed.
      
        3. adb-iop driver receives an IOP message and assumes that it relates
           to the Talk command. It's actually an empty one (with flags ==
           ADB_IOP_EXPLICIT|ADB_IOP_TIMEOUT) for the previous command. The
           Talk command is now considered complete but it gets the wrong reply
           data.
      
        4. adb-iop driver gets another IOP response message, which contains
           the actual reply data for the Talk command, but this is dropped
           (the driver is no longer in awaiting_reply state).
      
      Cc: Joshua Thompson <funaho@jurai.org>
      Fixes: e2954e5f ("macintosh/adb-iop: Implement sending -> idle state transition")
      Tested-by: default avatarStan Johnson <userm57@yahoo.com>
      Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
      Link: https://lore.kernel.org/r/0f0a25855391e7eaa53a50f651aea0124e8525dd.1605847196.git.fthain@telegraphics.com.au
      
      
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      2c9cfbad
  11. Sep 18, 2020
  12. Sep 16, 2020
  13. Sep 15, 2020
  14. Sep 02, 2020
  15. Aug 23, 2020
  16. Jul 26, 2020
  17. Jul 21, 2020
  18. Jul 19, 2020
Loading