Commit Graph

5 Commits

Author SHA1 Message Date
Desnes Nunes 1a3e652f50 firmware_loader: fix up to_fw_sysfs() to preserve const
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2190250
Upstream Status: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=47446b50ad2549af4fcc93f82a148ab107e6ef6a
Conflicts:
* Avoiding commit <23680f0b7d7f> ("driver core: make struct
class.dev_uevent() take a const *") and its series.

commit 47446b50ad2549af4fcc93f82a148ab107e6ef6a
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: Mon, 5 Dec 2022 13:12:06 +0100

  to_fw_sysfs() was changed in commit 23680f0b7d7f ("driver core: make
  struct class.dev_uevent() take a const *") to pass in a const pointer
  but not pass it back out to handle some changes in the driver core.
  That isn't the best idea as it could cause problems if used incorrectly,
  so switch to use the container_of_const() macro instead which will
  preserve the const status of the pointer and enforce it by the compiler.

  Fixes: 23680f0b7d7f ("driver core: make struct class.dev_uevent() take a const *")
  Cc: Luis Chamberlain <mcgrof@kernel.org>
  Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
  Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
  Acked-by: Russ Weight <russell.h.weight@intel.com>
  Acked-by: Rafael J. Wysocki <rafael@kernel.org>
  Link: https://lore.kernel.org/r/20221205121206.166576-4-gregkh@linuxfoundation.org
  Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Signed-off-by: Desnes Nunes <desnesn@redhat.com>
2023-05-08 15:02:51 -03:00
Mark Langsdorf 8718eb48bb firmware_loader: Fix memory leak in firmware upload
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2122318

commit 789bba82f63c3e81dce426ba457fc7905b30ac6e
Author: Russ Weight <russell.h.weight@intel.com>
Date:   Tue Aug 30 17:25:18 2022 -0700

In the case of firmware-upload, an instance of struct fw_upload is
allocated in firmware_upload_register(). This data needs to be freed
in fw_dev_release(). Create a new fw_upload_free() function in
sysfs_upload.c to handle the firmware-upload specific memory frees
and incorporate the missing kfree call for the fw_upload structure.

Fixes: 97730bbb242c ("firmware_loader: Add firmware-upload support")
Cc: stable <stable@kernel.org>
Signed-off-by: Russ Weight <russell.h.weight@intel.com>
Link: https://lore.kernel.org/r/20220831002518.465274-1-russell.h.weight@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
2022-10-25 15:20:23 -04:00
Mark Langsdorf 952d6c7edf firmware_loader: Move definitions from sysfs_upload.h to sysfs.h
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2122318

commit f8ae07f4b8bfde0f33761e1a1aaee45a4e85e9d6
Author: Russ Weight <russell.h.weight@intel.com>
Date: Tue, 26 Apr 2022 13:03:56 -0700

Move definitions required by sysfs.c from sysfs_upload.h to sysfs.h so
that sysfs.c does not need to include sysfs_upload.h.

Signed-off-by: Russ Weight <russell.h.weight@intel.com>
Link: https://lore.kernel.org/r/20220426200356.126085-3-russell.h.weight@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
2022-10-25 15:20:23 -04:00
Mark Langsdorf ae5143e8c7 firmware_loader: Add firmware-upload support
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2122318

commit 97730bbb242cde22b7140acd202ffd88823886c9
Author: Russ Weight <russell.h.weight@intel.com>
Date: Thu, 21 Apr 2022 14:22:00 -0700

Extend the firmware subsystem to support a persistent sysfs interface that
userspace may use to initiate a firmware update. For example, FPGA based
PCIe cards load firmware and FPGA images from local FLASH when the card
boots. The images in FLASH may be updated with new images provided by the
user at his/her convenience.

A device driver may call firmware_upload_register() to expose persistent
"loading" and "data" sysfs files. These files are used in the same way as
the fallback sysfs "loading" and "data" files. When 0 is written to
"loading" to complete the write of firmware data, the data is transferred
to the lower-level driver using pre-registered call-back functions. The
data transfer is done in the context of a kernel worker thread.

Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Tianfei zhang <tianfei.zhang@intel.com>
Tested-by: Matthew Gerlach <matthew.gerlach@linux.intel.com>
Signed-off-by: Russ Weight <russell.h.weight@intel.com>
Link: https://lore.kernel.org/r/20220421212204.36052-5-russell.h.weight@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
2022-10-25 15:20:18 -04:00
Mark Langsdorf d4ceb799da firmware_loader: Split sysfs support from fallback
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2122318
Conflicts:
	drivers/base/firmware_loader/fallback.c - context
differences when deleting old code
	drivers/base/firmware_loader/sysfs.c - the new
code had to be modified to match the code moved from fallback.c
Notably, CONFIG_FW_LOADER_USER_HELPER references were removed
and (un)register_sysfs_loader was simplified and the references
to firmware_config_sysctl() were removed.

commit e0c11a8b985137aebf4bcd07cd957b80ac23924d
Author: Russ Weight <russell.h.weight@intel.com>
Date: Thu, 21 Apr 2022 14:21:59 -0700

In preparation for sharing the "loading" and "data" sysfs nodes with the
new firmware upload support, split out sysfs functionality from fallback.c
and fallback.h into sysfs.c and sysfs.h. This includes the firmware
class driver code that is associated with the sysfs files and the
fw_fallback_config support for the timeout sysfs node.

CONFIG_FW_LOADER_SYSFS is created and is selected by
CONFIG_FW_LOADER_USER_HELPER in order to include sysfs.o in
firmware_class-objs.

This is mostly just a code reorganization. There are a few symbols that
change in scope, and these can be identified by looking at the header
file changes. A few white-space warnings from checkpatch are also
addressed in this patch.

Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Tianfei zhang <tianfei.zhang@intel.com>
Tested-by: Matthew Gerlach <matthew.gerlach@linux.intel.com>
Signed-off-by: Russ Weight <russell.h.weight@intel.com>
Link: https://lore.kernel.org/r/20220421212204.36052-4-russell.h.weight@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
2022-10-25 15:20:18 -04:00