mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
liveupdate: luo_file: Use private list
Switch LUO to use the private list iterators. Link: https://lkml.kernel.org/r/20251218155752.3045808-4-pasha.tatashin@soleen.com Signed-off-by: Pasha Tatashin <pasha.tatashin@soleen.com> Cc: Alexander Graf <graf@amazon.com> Cc: David Gow <davidgow@google.com> Cc: David Matlack <dmatlack@google.com> Cc: David Rientjes <rientjes@google.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Kees Cook <kees@kernel.org> Cc: Mike Rapoport <rppt@kernel.org> Cc: Petr Mladek <pmladek@suse.com> Cc: Pratyush Yadav <pratyush@kernel.org> Cc: Samiullah Khawaja <skhawaja@google.com> Cc: Tamir Duberstein <tamird@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
66bd8501ce
commit
6845645eef
@@ -104,6 +104,7 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/kexec_handover.h>
|
||||
#include <linux/kho/abi/luo.h>
|
||||
#include <linux/list_private.h>
|
||||
#include <linux/liveupdate.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/sizes.h>
|
||||
@@ -273,7 +274,7 @@ int luo_preserve_file(struct luo_file_set *file_set, u64 token, int fd)
|
||||
goto err_fput;
|
||||
|
||||
err = -ENOENT;
|
||||
luo_list_for_each_private(fh, &luo_file_handler_list, list) {
|
||||
list_private_for_each_entry(fh, &luo_file_handler_list, list) {
|
||||
if (fh->ops->can_preserve(fh, file)) {
|
||||
err = 0;
|
||||
break;
|
||||
@@ -760,7 +761,7 @@ int luo_file_deserialize(struct luo_file_set *file_set,
|
||||
bool handler_found = false;
|
||||
struct luo_file *luo_file;
|
||||
|
||||
luo_list_for_each_private(fh, &luo_file_handler_list, list) {
|
||||
list_private_for_each_entry(fh, &luo_file_handler_list, list) {
|
||||
if (!strcmp(fh->compatible, file_ser[i].compatible)) {
|
||||
handler_found = true;
|
||||
break;
|
||||
@@ -835,7 +836,7 @@ int liveupdate_register_file_handler(struct liveupdate_file_handler *fh)
|
||||
return -EBUSY;
|
||||
|
||||
/* Check for duplicate compatible strings */
|
||||
luo_list_for_each_private(fh_iter, &luo_file_handler_list, list) {
|
||||
list_private_for_each_entry(fh_iter, &luo_file_handler_list, list) {
|
||||
if (!strcmp(fh_iter->compatible, fh->compatible)) {
|
||||
pr_err("File handler registration failed: Compatible string '%s' already registered.\n",
|
||||
fh->compatible);
|
||||
|
||||
@@ -40,13 +40,6 @@ static inline int luo_ucmd_respond(struct luo_ucmd *ucmd,
|
||||
*/
|
||||
#define luo_restore_fail(__fmt, ...) panic(__fmt, ##__VA_ARGS__)
|
||||
|
||||
/* Mimics list_for_each_entry() but for private list head entries */
|
||||
#define luo_list_for_each_private(pos, head, member) \
|
||||
for (struct list_head *__iter = (head)->next; \
|
||||
__iter != (head) && \
|
||||
({ pos = container_of(__iter, typeof(*(pos)), member); 1; }); \
|
||||
__iter = __iter->next)
|
||||
|
||||
/**
|
||||
* struct luo_file_set - A set of files that belong to the same sessions.
|
||||
* @files_list: An ordered list of files associated with this session, it is
|
||||
|
||||
Reference in New Issue
Block a user