* Please pull u-boot-marvell/master
From: Stefan Roese @ 2022-01-05 17:27 UTC (permalink / raw)
To: Tom Rini, U-Boot Mailing List
Hi Tom,
please pull this last minute kwbimage related fix:
----------------------------------------------------------------
- kwbimage: Fix checksum calculation for v1 images (Pierre)
----------------------------------------------------------------
Here the Azure build, without any issues:
https://dev.azure.com/sr0718/u-boot/_build/results?buildId=143&view=results
Thanks,
Stefan
The following changes since commit b3f84a939f514a266a5a3aa97cbe2787c2d73d89:
Merge tag 'video-20211228' of
https://source.denx.de/u-boot/custodians/u-boot-video (2021-12-28
11:19:26 -0500)
are available in the Git repository at:
git@source.denx.de:u-boot/custodians/u-boot-marvell.git
for you to fetch changes up to 9203c73895ab410f7a57f56ec26201253a1f008b:
tools: kwbimage: Fix checksum calculation for v1 images (2022-01-05
16:31:58 +0100)
----------------------------------------------------------------
Pierre Bourdon (1):
tools: kwbimage: Fix checksum calculation for v1 images
tools/kwbimage.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
^ permalink raw reply
* [PATCH v2 4/8] merge-tree: implement real merges
From: Elijah Newren via GitGitGadget @ 2022-01-05 17:27 UTC (permalink / raw)
To: git
Cc: Christian Couder, Taylor Blau, Johannes Altmanninger,
Elijah Newren, Elijah Newren, Elijah Newren
In-Reply-To: <pull.1114.v2.git.git.1641403655.gitgitgadget@gmail.com>
From: Elijah Newren <newren@gmail.com>
This adds the ability to perform real merges rather than just trivial
merges (meaning handling three way content merges, recursive ancestor
consolidation, renames, proper directory/file conflict handling, and so
forth). However, unlike `git merge`, the working tree and index are
left alone and no branch is updated.
The only output is:
- the toplevel resulting tree printed on stdout
- exit status of 0 (clean) or 1 (conflicts present)
This output is mean to be used by some higher level script, perhaps in a
sequence of steps like this:
NEWTREE=$(git merge-tree --real $BRANCH1 $BRANCH2)
test $? -eq 0 || die "There were conflicts..."
NEWCOMMIT=$(git commit-tree $NEWTREE -p $BRANCH1 -p $BRANCH2)
git update-ref $BRANCH1 $NEWCOMMIT
Note that higher level scripts may also want to access the
conflict/warning messages normally output during a merge, or have quick
access to a list of files with conflicts. That is not available in this
preliminary implementation, but subsequent commits will add that
ability.
Signed-off-by: Elijah Newren <newren@gmail.com>
---
Documentation/git-merge-tree.txt | 28 +++++++----
builtin/merge-tree.c | 55 +++++++++++++++++++++-
t/t4301-merge-tree-real.sh | 81 ++++++++++++++++++++++++++++++++
3 files changed, 153 insertions(+), 11 deletions(-)
create mode 100755 t/t4301-merge-tree-real.sh
diff --git a/Documentation/git-merge-tree.txt b/Documentation/git-merge-tree.txt
index 58731c19422..5823938937f 100644
--- a/Documentation/git-merge-tree.txt
+++ b/Documentation/git-merge-tree.txt
@@ -3,26 +3,34 @@ git-merge-tree(1)
NAME
----
-git-merge-tree - Show three-way merge without touching index
+git-merge-tree - Perform merge without touching index or working tree
SYNOPSIS
--------
[verse]
+'git merge-tree' --real <branch1> <branch2>
'git merge-tree' <base-tree> <branch1> <branch2>
DESCRIPTION
-----------
-Reads three tree-ish, and output trivial merge results and
-conflicting stages to the standard output. This is similar to
-what three-way 'git read-tree -m' does, but instead of storing the
-results in the index, the command outputs the entries to the
-standard output.
+Performs a merge, but does not make any new commits and does not read
+from or write to either the working tree or index.
-This is meant to be used by higher level scripts to compute
-merge results outside of the index, and stuff the results back into the
-index. For this reason, the output from the command omits
-entries that match the <branch1> tree.
+The first form will merge the two branches, doing a full recursive
+merge with rename detection. If the merge is clean, the exit status
+will be `0`, and if the merge has conflicts, the exit status will be
+`1`. The output will consist solely of the resulting toplevel tree
+(which may have files including conflict markers).
+
+The second form is meant for backward compatibility and will only do a
+trival merge. It reads three tree-ish, and outputs trivial merge
+results and conflicting stages to the standard output in a semi-diff
+format. Since this was designed for higher level scripts to consume
+and merge the results back into the index, it omits entries that match
+<branch1>. The result of this second form is is similar to what
+three-way 'git read-tree -m' does, but instead of storing the results
+in the index, the command outputs the entries to the standard output.
GIT
---
diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c
index e1d2832c809..ac50f3d108b 100644
--- a/builtin/merge-tree.c
+++ b/builtin/merge-tree.c
@@ -2,6 +2,9 @@
#include "builtin.h"
#include "tree-walk.h"
#include "xdiff-interface.h"
+#include "help.h"
+#include "commit-reach.h"
+#include "merge-ort.h"
#include "object-store.h"
#include "parse-options.h"
#include "repository.h"
@@ -392,7 +395,57 @@ struct merge_tree_options {
static int real_merge(struct merge_tree_options *o,
const char *branch1, const char *branch2)
{
- die(_("real merges are not yet implemented"));
+ struct commit *parent1, *parent2;
+ struct commit_list *common;
+ struct commit_list *merge_bases = NULL;
+ struct commit_list *j;
+ struct merge_options opt;
+ struct merge_result result = { 0 };
+
+ parent1 = get_merge_parent(branch1);
+ if (!parent1)
+ help_unknown_ref(branch1, "merge",
+ _("not something we can merge"));
+
+ parent2 = get_merge_parent(branch2);
+ if (!parent2)
+ help_unknown_ref(branch2, "merge",
+ _("not something we can merge"));
+
+ init_merge_options(&opt, the_repository);
+ /*
+ * TODO: Support subtree and other -X options?
+ if (use_strategies_nr == 1 &&
+ !strcmp(use_strategies[0]->name, "subtree"))
+ opt.subtree_shift = "";
+ for (x = 0; x < xopts_nr; x++)
+ if (parse_merge_opt(&opt, xopts[x]))
+ die(_("Unknown strategy option: -X%s"), xopts[x]);
+ */
+
+ opt.show_rename_progress = 0;
+
+ opt.branch1 = merge_remote_util(parent1)->name; /* or just branch1? */
+ opt.branch2 = merge_remote_util(parent2)->name; /* or just branch2? */
+
+ /*
+ * Get the merge bases, in reverse order; see comment above
+ * merge_incore_recursive in merge-ort.h
+ */
+ common = get_merge_bases(parent1, parent2);
+ for (j = common; j; j = j->next)
+ commit_list_insert(j->item, &merge_bases);
+
+ /*
+ * TODO: notify if merging unrelated histories?
+ if (!common)
+ fprintf(stderr, _("merging unrelated histories"));
+ */
+
+ merge_incore_recursive(&opt, merge_bases, parent1, parent2, &result);
+ printf("%s\n", oid_to_hex(&result.tree->object.oid));
+ merge_switch_to_result(&opt, NULL, &result, 0, 0);
+ return result.clean ? 0 : 1;
}
int cmd_merge_tree(int argc, const char **argv, const char *prefix)
diff --git a/t/t4301-merge-tree-real.sh b/t/t4301-merge-tree-real.sh
new file mode 100755
index 00000000000..f7aa310f8c1
--- /dev/null
+++ b/t/t4301-merge-tree-real.sh
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+test_description='git merge-tree --real'
+
+. ./test-lib.sh
+
+# This test is ort-specific
+GIT_TEST_MERGE_ALGORITHM=ort
+export GIT_TEST_MERGE_ALGORITHM
+
+test_expect_success setup '
+ test_write_lines 1 2 3 4 5 >numbers &&
+ echo hello >greeting &&
+ echo foo >whatever &&
+ git add numbers greeting whatever &&
+ git commit -m initial &&
+
+ git branch side1 &&
+ git branch side2 &&
+
+ git checkout side1 &&
+ test_write_lines 1 2 3 4 5 6 >numbers &&
+ echo hi >greeting &&
+ echo bar >whatever &&
+ git add numbers greeting whatever &&
+ git commit -m modify-stuff &&
+
+ git checkout side2 &&
+ test_write_lines 0 1 2 3 4 5 >numbers &&
+ echo yo >greeting &&
+ git rm whatever &&
+ mkdir whatever &&
+ >whatever/empty &&
+ git add numbers greeting whatever/empty &&
+ git commit -m other-modifications
+'
+
+test_expect_success 'Content merge and a few conflicts' '
+ git checkout side1^0 &&
+ test_must_fail git merge side2 &&
+ cp .git/AUTO_MERGE EXPECT &&
+ E_TREE=$(cat EXPECT) &&
+
+ git reset --hard &&
+ test_must_fail git merge-tree --real side1 side2 >RESULT &&
+ R_TREE=$(cat RESULT) &&
+
+ # Due to differences of e.g. "HEAD" vs "side1", the results will not
+ # exactly match. Dig into individual files.
+
+ # Numbers should have three-way merged cleanly
+ test_write_lines 0 1 2 3 4 5 6 >expect &&
+ git show ${R_TREE}:numbers >actual &&
+ test_cmp expect actual &&
+
+ # whatever and whatever~<branch> should have same HASHES
+ git rev-parse ${E_TREE}:whatever ${E_TREE}:whatever~HEAD >expect &&
+ git rev-parse ${R_TREE}:whatever ${R_TREE}:whatever~side1 >actual &&
+ test_cmp expect actual &&
+
+ # greeting should have a merge conflict
+ git show ${E_TREE}:greeting >tmp &&
+ cat tmp | sed -e s/HEAD/side1/ >expect &&
+ git show ${R_TREE}:greeting >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'Barf on misspelled option' '
+ # Mis-spell with single "s" instead of double "s"
+ test_expect_code 129 git merge-tree --real --mesages FOOBAR side1 side2 2>expect &&
+
+ grep "error: unknown option.*mesages" expect
+'
+
+test_expect_success 'Barf on too many arguments' '
+ test_expect_code 129 git merge-tree --real side1 side2 side3 2>expect &&
+
+ grep "^usage: git merge-tree" expect
+'
+
+test_done
--
gitgitgadget
^ permalink raw reply related
* [PATCH v2 5/8] merge-ort: split out a separate display_update_messages() function
From: Elijah Newren via GitGitGadget @ 2022-01-05 17:27 UTC (permalink / raw)
To: git
Cc: Christian Couder, Taylor Blau, Johannes Altmanninger,
Elijah Newren, Elijah Newren, Elijah Newren
In-Reply-To: <pull.1114.v2.git.git.1641403655.gitgitgadget@gmail.com>
From: Elijah Newren <newren@gmail.com>
No functional changes included in this patch; it's just a preparatory
step in anticipation of wanting to handle the printed messages
differently in `git merge-tree --real`.
Signed-off-by: Elijah Newren <newren@gmail.com>
---
merge-ort.c | 71 ++++++++++++++++++++++++++++-------------------------
merge-ort.h | 8 ++++++
2 files changed, 46 insertions(+), 33 deletions(-)
diff --git a/merge-ort.c b/merge-ort.c
index 0342f104836..3cdef173cd7 100644
--- a/merge-ort.c
+++ b/merge-ort.c
@@ -4197,6 +4197,42 @@ static int record_conflicted_index_entries(struct merge_options *opt)
return errs;
}
+void merge_display_update_messages(struct merge_options *opt,
+ struct merge_result *result)
+{
+ struct merge_options_internal *opti = result->priv;
+ struct hashmap_iter iter;
+ struct strmap_entry *e;
+ struct string_list olist = STRING_LIST_INIT_NODUP;
+ int i;
+
+ trace2_region_enter("merge", "display messages", opt->repo);
+
+ /* Hack to pre-allocate olist to the desired size */
+ ALLOC_GROW(olist.items, strmap_get_size(&opti->output),
+ olist.alloc);
+
+ /* Put every entry from output into olist, then sort */
+ strmap_for_each_entry(&opti->output, &iter, e) {
+ string_list_append(&olist, e->key)->util = e->value;
+ }
+ string_list_sort(&olist);
+
+ /* Iterate over the items, printing them */
+ for (i = 0; i < olist.nr; ++i) {
+ struct strbuf *sb = olist.items[i].util;
+
+ printf("%s", sb->buf);
+ }
+ string_list_clear(&olist, 0);
+
+ /* Also include needed rename limit adjustment now */
+ diff_warn_rename_limit("merge.renamelimit",
+ opti->renames.needed_limit, 0);
+
+ trace2_region_leave("merge", "display messages", opt->repo);
+}
+
void merge_switch_to_result(struct merge_options *opt,
struct tree *head,
struct merge_result *result,
@@ -4235,39 +4271,8 @@ void merge_switch_to_result(struct merge_options *opt,
trace2_region_leave("merge", "write_auto_merge", opt->repo);
}
- if (display_update_msgs) {
- struct merge_options_internal *opti = result->priv;
- struct hashmap_iter iter;
- struct strmap_entry *e;
- struct string_list olist = STRING_LIST_INIT_NODUP;
- int i;
-
- trace2_region_enter("merge", "display messages", opt->repo);
-
- /* Hack to pre-allocate olist to the desired size */
- ALLOC_GROW(olist.items, strmap_get_size(&opti->output),
- olist.alloc);
-
- /* Put every entry from output into olist, then sort */
- strmap_for_each_entry(&opti->output, &iter, e) {
- string_list_append(&olist, e->key)->util = e->value;
- }
- string_list_sort(&olist);
-
- /* Iterate over the items, printing them */
- for (i = 0; i < olist.nr; ++i) {
- struct strbuf *sb = olist.items[i].util;
-
- printf("%s", sb->buf);
- }
- string_list_clear(&olist, 0);
-
- /* Also include needed rename limit adjustment now */
- diff_warn_rename_limit("merge.renamelimit",
- opti->renames.needed_limit, 0);
-
- trace2_region_leave("merge", "display messages", opt->repo);
- }
+ if (display_update_msgs)
+ merge_display_update_messages(opt, result);
merge_finalize(opt, result);
}
diff --git a/merge-ort.h b/merge-ort.h
index c011864ffeb..1b93555a60b 100644
--- a/merge-ort.h
+++ b/merge-ort.h
@@ -70,6 +70,14 @@ void merge_switch_to_result(struct merge_options *opt,
int update_worktree_and_index,
int display_update_msgs);
+/*
+ * Display messages about conflicts and which files were 3-way merged.
+ * Automatically called by merge_switch_to_result() with stream == stdout,
+ * so only call this when bypassing merge_switch_to_result().
+ */
+void merge_display_update_messages(struct merge_options *opt,
+ struct merge_result *result);
+
/* Do needed cleanup when not calling merge_switch_to_result() */
void merge_finalize(struct merge_options *opt,
struct merge_result *result);
--
gitgitgadget
^ permalink raw reply related
* [PATCH v2 3/8] merge-tree: add option parsing and initial shell for real merge function
From: Elijah Newren via GitGitGadget @ 2022-01-05 17:27 UTC (permalink / raw)
To: git
Cc: Christian Couder, Taylor Blau, Johannes Altmanninger,
Elijah Newren, Elijah Newren, Elijah Newren
In-Reply-To: <pull.1114.v2.git.git.1641403655.gitgitgadget@gmail.com>
From: Elijah Newren <newren@gmail.com>
Let merge-tree accept a `--real` parameter for choosing real merges
instead of trivial merges. Note that real merges differ from trivial
merges in that they handle:
- three way content merges
- recursive ancestor consolidation
- renames
- proper directory/file conflict handling
- etc.
Basically all the stuff you'd expect from `git merge`, just without
updating the index and working tree. The initial shell added here does
nothing more than die with "real merges are not yet implemented", but
that will be fixed in subsequent commits.
Signed-off-by: Elijah Newren <newren@gmail.com>
---
builtin/merge-tree.c | 56 +++++++++++++++++++++++++++++++++++++-------
git.c | 2 +-
2 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c
index 914ec960b7e..e1d2832c809 100644
--- a/builtin/merge-tree.c
+++ b/builtin/merge-tree.c
@@ -3,13 +3,12 @@
#include "tree-walk.h"
#include "xdiff-interface.h"
#include "object-store.h"
+#include "parse-options.h"
#include "repository.h"
#include "blob.h"
#include "exec-cmd.h"
#include "merge-blobs.h"
-static const char merge_tree_usage[] = "git merge-tree <base-tree> <branch1> <branch2>";
-
struct merge_list {
struct merge_list *next;
struct merge_list *link; /* other stages for this object */
@@ -366,15 +365,17 @@ static void *get_tree_descriptor(struct repository *r,
return buf;
}
-static int trivial_merge(int argc, const char **argv)
+static int trivial_merge(const char *base,
+ const char *branch1,
+ const char *branch2)
{
struct repository *r = the_repository;
struct tree_desc t[3];
void *buf1, *buf2, *buf3;
- buf1 = get_tree_descriptor(r, t+0, argv[1]);
- buf2 = get_tree_descriptor(r, t+1, argv[2]);
- buf3 = get_tree_descriptor(r, t+2, argv[3]);
+ buf1 = get_tree_descriptor(r, t+0, base);
+ buf2 = get_tree_descriptor(r, t+1, branch1);
+ buf3 = get_tree_descriptor(r, t+2, branch2);
trivial_merge_trees(t, "");
free(buf1);
free(buf2);
@@ -384,9 +385,46 @@ static int trivial_merge(int argc, const char **argv)
return 0;
}
+struct merge_tree_options {
+ int real;
+};
+
+static int real_merge(struct merge_tree_options *o,
+ const char *branch1, const char *branch2)
+{
+ die(_("real merges are not yet implemented"));
+}
+
int cmd_merge_tree(int argc, const char **argv, const char *prefix)
{
- if (argc != 4)
- usage(merge_tree_usage);
- return trivial_merge(argc, argv);
+ struct merge_tree_options o = { 0 };
+ int expected_remaining_argc;
+
+ const char * const merge_tree_usage[] = {
+ N_("git merge-tree --real <branch1> <branch2>"),
+ N_("git merge-tree <base-tree> <branch1> <branch2>"),
+ NULL
+ };
+ struct option mt_options[] = {
+ OPT_BOOL(0, "real", &o.real,
+ N_("do a real merge instead of a trivial merge")),
+ OPT_END()
+ };
+
+ /* Check for a request for basic help */
+ if (argc == 2 && !strcmp(argv[1], "-h"))
+ usage_with_options(merge_tree_usage, mt_options);
+
+ /* Parse arguments */
+ argc = parse_options(argc, argv, prefix, mt_options,
+ merge_tree_usage, 0);
+ expected_remaining_argc = (o.real ? 2 : 3);
+ if (argc != expected_remaining_argc)
+ usage_with_options(merge_tree_usage, mt_options);
+
+ /* Do the relevant type of merge */
+ if (o.real)
+ return real_merge(&o, argv[0], argv[1]);
+ else
+ return trivial_merge(argv[0], argv[1], argv[2]);
}
diff --git a/git.c b/git.c
index 7edafd8ecff..0124c053878 100644
--- a/git.c
+++ b/git.c
@@ -561,7 +561,7 @@ static struct cmd_struct commands[] = {
{ "merge-recursive-ours", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT },
{ "merge-recursive-theirs", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT },
{ "merge-subtree", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT },
- { "merge-tree", cmd_merge_tree, RUN_SETUP | NO_PARSEOPT },
+ { "merge-tree", cmd_merge_tree, RUN_SETUP },
{ "mktag", cmd_mktag, RUN_SETUP | NO_PARSEOPT },
{ "mktree", cmd_mktree, RUN_SETUP },
{ "multi-pack-index", cmd_multi_pack_index, RUN_SETUP },
--
gitgitgadget
^ permalink raw reply related
* [PATCH v2 2/8] merge-tree: move logic for existing merge into new function
From: Elijah Newren via GitGitGadget @ 2022-01-05 17:27 UTC (permalink / raw)
To: git
Cc: Christian Couder, Taylor Blau, Johannes Altmanninger,
Elijah Newren, Elijah Newren, Elijah Newren
In-Reply-To: <pull.1114.v2.git.git.1641403655.gitgitgadget@gmail.com>
From: Elijah Newren <newren@gmail.com>
In preparation for adding a non-trivial merge capability to merge-tree,
move the existing merge logic for trivial merges into a new function.
Signed-off-by: Elijah Newren <newren@gmail.com>
---
builtin/merge-tree.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c
index 06f9eee9f78..914ec960b7e 100644
--- a/builtin/merge-tree.c
+++ b/builtin/merge-tree.c
@@ -366,15 +366,12 @@ static void *get_tree_descriptor(struct repository *r,
return buf;
}
-int cmd_merge_tree(int argc, const char **argv, const char *prefix)
+static int trivial_merge(int argc, const char **argv)
{
struct repository *r = the_repository;
struct tree_desc t[3];
void *buf1, *buf2, *buf3;
- if (argc != 4)
- usage(merge_tree_usage);
-
buf1 = get_tree_descriptor(r, t+0, argv[1]);
buf2 = get_tree_descriptor(r, t+1, argv[2]);
buf3 = get_tree_descriptor(r, t+2, argv[3]);
@@ -386,3 +383,10 @@ int cmd_merge_tree(int argc, const char **argv, const char *prefix)
show_result();
return 0;
}
+
+int cmd_merge_tree(int argc, const char **argv, const char *prefix)
+{
+ if (argc != 4)
+ usage(merge_tree_usage);
+ return trivial_merge(argc, argv);
+}
--
gitgitgadget
^ permalink raw reply related
* [PATCH v2 1/8] merge-tree: rename merge_trees() to trivial_merge_trees()
From: Elijah Newren via GitGitGadget @ 2022-01-05 17:27 UTC (permalink / raw)
To: git
Cc: Christian Couder, Taylor Blau, Johannes Altmanninger,
Elijah Newren, Elijah Newren, Elijah Newren
In-Reply-To: <pull.1114.v2.git.git.1641403655.gitgitgadget@gmail.com>
From: Elijah Newren <newren@gmail.com>
merge-recursive.h defined its own merge_trees() function, different than
the one found in builtin/merge-tree.c. That was okay in the past, but
we want merge-tree to be able to use the merge-ort functions, which will
end up including merge-recursive.h. Rename the function found in
builtin/merge-tree.c to avoid the conflict.
Signed-off-by: Elijah Newren <newren@gmail.com>
---
builtin/merge-tree.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c
index 5dc94d6f880..06f9eee9f78 100644
--- a/builtin/merge-tree.c
+++ b/builtin/merge-tree.c
@@ -28,7 +28,7 @@ static void add_merge_entry(struct merge_list *entry)
merge_result_end = &entry->next;
}
-static void merge_trees(struct tree_desc t[3], const char *base);
+static void trivial_merge_trees(struct tree_desc t[3], const char *base);
static const char *explanation(struct merge_list *entry)
{
@@ -225,7 +225,7 @@ static void unresolved_directory(const struct traverse_info *info,
buf2 = fill_tree_descriptor(r, t + 2, ENTRY_OID(n + 2));
#undef ENTRY_OID
- merge_trees(t, newbase);
+ trivial_merge_trees(t, newbase);
free(buf0);
free(buf1);
@@ -342,7 +342,7 @@ static int threeway_callback(int n, unsigned long mask, unsigned long dirmask, s
return mask;
}
-static void merge_trees(struct tree_desc t[3], const char *base)
+static void trivial_merge_trees(struct tree_desc t[3], const char *base)
{
struct traverse_info info;
@@ -378,7 +378,7 @@ int cmd_merge_tree(int argc, const char **argv, const char *prefix)
buf1 = get_tree_descriptor(r, t+0, argv[1]);
buf2 = get_tree_descriptor(r, t+1, argv[2]);
buf3 = get_tree_descriptor(r, t+2, argv[3]);
- merge_trees(t, "");
+ trivial_merge_trees(t, "");
free(buf1);
free(buf2);
free(buf3);
--
gitgitgadget
^ permalink raw reply related
* [PATCH v2 0/8] RFC: Server side merges (no ref updating, no commit creating, no touching worktree or index)
From: Elijah Newren via GitGitGadget @ 2022-01-05 17:27 UTC (permalink / raw)
To: git
Cc: Christian Couder, Taylor Blau, Johannes Altmanninger,
Elijah Newren, Elijah Newren
In-Reply-To: <pull.1114.git.git.1640927044.gitgitgadget@gmail.com>
(NOTE for Junio: This series has a minor conflict with en/remerge-diff --
this series moves a code block into a new function, but en/remerge-diff adds
a BUG() message to that code block. But this series is just RFC, so you may
want to wait to pick it up.)
Updates since v1:
* Fixed a bad patch splitting, and a style issue pointed out by Johannes
Altimanninger
* Fixed misleading commit messages in new test cases
* Fixed my comments about how commit-tree could be used to correctly use
two -p flags
NOTE2: A preliminary version of this series was discussed here:
https://lore.kernel.org/git/nycvar.QRO.7.76.6.2110211147490.56@tvgsbejvaqbjf.bet/
NOTE3: An alternative has been implemented by Christian, over here:
https://lore.kernel.org/git/20220105163324.73369-1-chriscool@tuxfamily.org/
This series introduces a new option to git-merge-tree: --real (best name I
could come up with). This new option is designed to allow a server-side
"real" merge (or allow folks client-side to do merges with branches they
don't even have checked out). Real merges differ from trivial merges in that
they handle:
* three way content merges
* recursive ancestor consolidation
* renames
* proper directory/file conflict handling
* etc.
The reason this is different from merge is that merge-tree does NOT:
* Read/write/update any working tree (and assumes there probably isn't one)
* Read/write/update any index (and assumes there probably isn't one)
* Create a commit object
* Update any refs
This series attempts to guess what kind of output would be wanted, basically
choosing:
* clean merge or conflict signalled via exit status
* stdout consists solely of printing the hash of the resulting tree (though
that tree may include files that have conflict markers)
* new optional --messages flag for specifying a file where informational
messages (e.g. conflict notices and files involved in three-way-content
merges) can be written; by default, this output is simply discarded
* new optional --conflicted-list flag for specifying a file where the names
of conflicted-files can be written in a NUL-character-separated list
This design means it's basically just a low-level tool that other scripts
would use and do additional work with. Perhaps something like this:
NEWTREE=$(git merge-tree --real $BRANCH1 $BRANCH2)
test $? -eq 0 || die "There were conflicts..."
NEWCOMMIT=$(git commit-tree $NEWTREE -p $BRANCH1 -p $BRANCH2)
git update-ref $BRANCH1 $NEWCOMMIT
Elijah Newren (8):
merge-tree: rename merge_trees() to trivial_merge_trees()
merge-tree: move logic for existing merge into new function
merge-tree: add option parsing and initial shell for real merge
function
merge-tree: implement real merges
merge-ort: split out a separate display_update_messages() function
merge-ort: allow update messages to be written to different file
stream
merge-tree: support saving merge messages to a separate file
merge-tree: provide an easy way to access which files have conflicts
Documentation/git-merge-tree.txt | 32 +++++--
builtin/merge-tree.c | 151 ++++++++++++++++++++++++++++---
git.c | 2 +-
merge-ort.c | 85 ++++++++++-------
merge-ort.h | 12 +++
t/t4301-merge-tree-real.sh | 108 ++++++++++++++++++++++
6 files changed, 333 insertions(+), 57 deletions(-)
create mode 100755 t/t4301-merge-tree-real.sh
base-commit: 2ae0a9cb8298185a94e5998086f380a355dd8907
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1114%2Fnewren%2Fmerge-into-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1114/newren/merge-into-v2
Pull-Request: https://github.com/git/git/pull/1114
Range-diff vs v1:
1: a7c7910d834 = 1: a7c7910d834 merge-tree: rename merge_trees() to trivial_merge_trees()
2: 9da8e77c1d7 ! 2: aafe67d7c69 merge-tree: move logic for existing merge into new function
@@ builtin/merge-tree.c: static void *get_tree_descriptor(struct repository *r,
}
-int cmd_merge_tree(int argc, const char **argv, const char *prefix)
--{
-+static int trivial_merge(int argc, const char **argv) {
++static int trivial_merge(int argc, const char **argv)
+ {
struct repository *r = the_repository;
struct tree_desc t[3];
void *buf1, *buf2, *buf3;
3: 9d03d3f56ab ! 3: ee21aed0115 merge-tree: add option parsing and initial shell for real merge function
@@ builtin/merge-tree.c: static void *get_tree_descriptor(struct repository *r,
return buf;
}
--static int trivial_merge(int argc, const char **argv) {
+-static int trivial_merge(int argc, const char **argv)
+static int trivial_merge(const char *base,
+ const char *branch1,
-+ const char *branch2) {
++ const char *branch2)
+ {
struct repository *r = the_repository;
struct tree_desc t[3];
void *buf1, *buf2, *buf3;
@@ builtin/merge-tree.c: static void *get_tree_descriptor(struct repository *r,
trivial_merge_trees(t, "");
free(buf1);
free(buf2);
-@@ builtin/merge-tree.c: static int trivial_merge(int argc, const char **argv) {
+@@ builtin/merge-tree.c: static int trivial_merge(int argc, const char **argv)
return 0;
}
4: 9fc71f4511b ! 4: 1710ba4a9e4 merge-tree: implement real merges
@@ Commit message
NEWTREE=$(git merge-tree --real $BRANCH1 $BRANCH2)
test $? -eq 0 || die "There were conflicts..."
- NEWCOMMIT=$(git commit-tree $NEWTREE -p $BRANCH1 $BRANCH2)
+ NEWCOMMIT=$(git commit-tree $NEWTREE -p $BRANCH1 -p $BRANCH2)
git update-ref $BRANCH1 $NEWCOMMIT
Note that higher level scripts may also want to access the
@@ t/t4301-merge-tree-real.sh (new)
+ echo hi >greeting &&
+ echo bar >whatever &&
+ git add numbers greeting whatever &&
-+ git commit -m rename-and-modify &&
++ git commit -m modify-stuff &&
+
+ git checkout side2 &&
+ test_write_lines 0 1 2 3 4 5 >numbers &&
@@ t/t4301-merge-tree-real.sh (new)
+ mkdir whatever &&
+ >whatever/empty &&
+ git add numbers greeting whatever/empty &&
-+ git commit -m remove-and-rename
++ git commit -m other-modifications
+'
+
+test_expect_success 'Content merge and a few conflicts' '
5: aa816e766e9 ! 5: bc6d01f1a0e merge-ort: split out a separate display_update_messages() function
@@ merge-ort.c: void merge_switch_to_result(struct merge_options *opt,
-
- trace2_region_leave("merge", "display messages", opt->repo);
- }
++ if (display_update_msgs)
++ merge_display_update_messages(opt, result);
merge_finalize(opt, result);
}
6: 32ad5b5c10d ! 6: c9e95a70d19 merge-ort: allow update messages to be written to different file stream
@@ merge-ort.c: void merge_display_update_messages(struct merge_options *opt,
string_list_clear(&olist, 0);
@@ merge-ort.c: void merge_switch_to_result(struct merge_options *opt,
- trace2_region_leave("merge", "write_auto_merge", opt->repo);
}
-+ if (display_update_msgs)
+ if (display_update_msgs)
+- merge_display_update_messages(opt, result);
+ merge_display_update_messages(opt, result, stdout);
merge_finalize(opt, result);
7: 777de92d9f1 = 7: 4b513a6d696 merge-tree: support saving merge messages to a separate file
8: 1d24a4f4070 = 8: 01364bb020e merge-tree: provide an easy way to access which files have conflicts
--
gitgitgadget
^ permalink raw reply
* Re: [PATCH] tools: kwbimage: Fix checksum calculation for v1 images
From: Stefan Roese @ 2022-01-05 17:27 UTC (permalink / raw)
To: Pierre Bourdon, u-boot; +Cc: Pali Rohár, Marek Behún
In-Reply-To: <ef17388a-e022-763a-4bac-ac815e27e77b@denx.de>
On 1/5/22 16:30, Stefan Roese wrote:
> On 12/25/21 20:50, Pierre Bourdon wrote:
>> Recent changes caused fields in the image main header to be modified
>> after the header checksum had already been computed. Move the checksum
>> computation to once again be the last operation performed on the header.
>>
>> Fixes: 2b0980c24027 ("tools: kwbimage: Fill the real header size into
>> the main header")
>>
>> Signed-off-by: Pierre Bourdon <delroth@gmail.com>
>
> Reviewed-by: Stefan Roese <sr@denx.de>
Applied to u-boot-marvell/master
Thanks,
Stefan
> Thanks,
> Stefan
>
>> ---
>> tools/kwbimage.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/tools/kwbimage.c b/tools/kwbimage.c
>> index 875f636c7a..0951d7861c 100644
>> --- a/tools/kwbimage.c
>> +++ b/tools/kwbimage.c
>> @@ -1398,9 +1398,6 @@ static void *image_create_v1(size_t *imagesz,
>> struct image_tool_params *params,
>> headersz, image, secure_hdr))
>> return NULL;
>> - /* Calculate and set the header checksum */
>> - main_hdr->checksum = image_checksum8(main_hdr, headersz);
>> -
>> *imagesz = headersz;
>> /* Fill the real header size without padding into the main
>> header */
>> @@ -1410,6 +1407,9 @@ static void *image_create_v1(size_t *imagesz,
>> struct image_tool_params *params,
>> main_hdr->headersz_lsb = cpu_to_le16(headersz & 0xFFFF);
>> main_hdr->headersz_msb = (headersz & 0xFFFF0000) >> 16;
>> + /* Calculate and set the header checksum */
>> + main_hdr->checksum = image_checksum8(main_hdr, headersz);
>> +
>> return image;
>> }
>>
>
> Viele Grüße,
> Stefan Roese
>
Viele Grüße,
Stefan Roese
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de
^ permalink raw reply
* [GIT PULL] Reset controller updates vor v5.17
From: Philipp Zabel @ 2022-01-05 17:26 UTC (permalink / raw)
To: soc; +Cc: linux-arm-kernel, kernel
Dear arm-soc maintainers,
The following changes since commit fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf:
Linux 5.16-rc1 (2021-11-14 13:56:52 -0800)
are available in the Git repository at:
git://git.pengutronix.de/pza/linux.git tags/reset-for-v5.17
for you to fetch changes up to 89e7a6698fdd6d0cccf5bab11abc51f813944cd8:
reset: uniphier-glue: Use devm_add_action_or_reset() (2021-12-16 09:59:55 +0100)
----------------------------------------------------------------
Reset controller updates vor v5.17
Add an optional variant of of_reset_control_get_exclusive(), document
a deprecated hi3660-reset device tree property, check whether reset
deassertion worked in the reset-rzg2l-usbphy-ctrl driver, and simplify
the uniphier-glue driver a bit.
----------------------------------------------------------------
Biju Das (1):
reset: Add of_reset_control_get_optional_exclusive()
David Heidelberg (1):
dt-bindings: reset: document deprecated HiSilicon property
Heiner Kallweit (1):
reset: renesas: Check return value of reset_control_deassert()
Philipp Zabel (2):
reset: uniphier-glue: Use reset_control_bulk API
reset: uniphier-glue: Use devm_add_action_or_reset()
.../bindings/reset/hisilicon,hi3660-reset.yaml | 5 ++
drivers/reset/reset-rzg2l-usbphy-ctrl.c | 4 +-
drivers/reset/reset-uniphier-glue.c | 75 ++++++++++------------
include/linux/reset.h | 20 ++++++
4 files changed, 62 insertions(+), 42 deletions(-)
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [Intel-gfx] [PATCH] drm/i915: stop including i915_irq.h from i915_drv.h
From: Jani Nikula @ 2022-01-05 17:27 UTC (permalink / raw)
To: Tvrtko Ursulin, intel-gfx
In-Reply-To: <4f090abf-3bcd-0253-d9f9-2a385aa11bb6@linux.intel.com>
On Wed, 05 Jan 2022, Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> wrote:
> On 05/01/2022 10:21, Jani Nikula wrote:
>> Only include i915_irq.h where actually needed.
>>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Thanks, pushed to drm-intel-next.
BR,
Jani.
>
> Regards,
>
> Tvrtko
>
>> ---
>> drivers/gpu/drm/i915/display/intel_crtc.c | 1 +
>> drivers/gpu/drm/i915/display/intel_display_trace.h | 1 +
>> drivers/gpu/drm/i915/gt/intel_rps.c | 1 +
>> drivers/gpu/drm/i915/gt/uc/intel_guc.c | 1 +
>> drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 1 +
>> drivers/gpu/drm/i915/i915_drv.h | 1 -
>> 6 files changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
>> index 16c3ca66d9f0..08ee3e17ee5c 100644
>> --- a/drivers/gpu/drm/i915/display/intel_crtc.c
>> +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
>> @@ -12,6 +12,7 @@
>> #include <drm/drm_plane_helper.h>
>> #include <drm/drm_vblank_work.h>
>>
>> +#include "i915_irq.h"
>> #include "i915_vgpu.h"
>> #include "i9xx_plane.h"
>> #include "icl_dsi.h"
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_trace.h b/drivers/gpu/drm/i915/display/intel_display_trace.h
>> index 4043e1276383..f05f0f9b5103 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_trace.h
>> +++ b/drivers/gpu/drm/i915/display/intel_display_trace.h
>> @@ -13,6 +13,7 @@
>> #include <linux/tracepoint.h>
>>
>> #include "i915_drv.h"
>> +#include "i915_irq.h"
>> #include "intel_crtc.h"
>> #include "intel_display_types.h"
>>
>> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
>> index 54e7df788dbf..bd35e45d3aaa 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
>> @@ -6,6 +6,7 @@
>> #include <drm/i915_drm.h>
>>
>> #include "i915_drv.h"
>> +#include "i915_irq.h"
>> #include "intel_breadcrumbs.h"
>> #include "intel_gt.h"
>> #include "intel_gt_clock_utils.h"
>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
>> index 6e228343e8cb..0c52d1652e8b 100644
>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
>> @@ -12,6 +12,7 @@
>> #include "intel_guc_ads.h"
>> #include "intel_guc_submission.h"
>> #include "i915_drv.h"
>> +#include "i915_irq.h"
>>
>> /**
>> * DOC: GuC
>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
>> index ac0931f0374b..7b0b43e87244 100644
>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
>> @@ -7,6 +7,7 @@
>>
>> #include "gt/intel_gt.h"
>> #include "i915_drv.h"
>> +#include "i915_irq.h"
>> #include "i915_memcpy.h"
>> #include "intel_guc_log.h"
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index beeb42a14aae..3967748ba347 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -106,7 +106,6 @@
>> #include "i915_scheduler.h"
>> #include "gt/intel_timeline.h"
>> #include "i915_vma.h"
>> -#include "i915_irq.h"
>>
>>
>> /* General customization:
>>
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply
* [GIT PULL] Reset controller fixes for v5.16, part 2
From: Philipp Zabel @ 2022-01-05 17:25 UTC (permalink / raw)
To: soc; +Cc: linux-arm-kernel, kernel
Dear arm-soc maintainers,
The following changes since commit 69125b4b9440be015783312e1b8753ec96febde0:
reset: tegra-bpmp: Revert Handle errors in BPMP response (2021-11-17 17:22:27 +0100)
are available in the Git repository at:
git://git.pengutronix.de/pza/linux.git tags/reset-fixes-for-v5.16-2
for you to fetch changes up to 92c959bae2e54ba1e2540ba5f813f7752bd76be1:
reset: renesas: Fix Runtime PM usage (2021-12-15 11:20:30 +0100)
----------------------------------------------------------------
Reset controller fixes for v5.16, part 2
Fix pm_runtime_resume_and_get() error handling in the
reset-rzg2l-usbphy-ctrl driver.
----------------------------------------------------------------
Heiner Kallweit (1):
reset: renesas: Fix Runtime PM usage
drivers/reset/reset-rzg2l-usbphy-ctrl.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCHv2 1/3] block: introduce rq_list_for_each_safe macro
From: Keith Busch @ 2022-01-05 17:26 UTC (permalink / raw)
To: Max Gurtovoy; +Cc: Christoph Hellwig, linux-nvme, linux-block, axboe, sagi
In-Reply-To: <ac74ac4c-15f3-997e-ecd2-5e704a5b4573@nvidia.com>
On Tue, Jan 04, 2022 at 02:15:58PM +0200, Max Gurtovoy wrote:
>
> This patch worked for me with 2 namespaces for NVMe PCI.
>
> I'll check it later on with my RDMA queue_rqs patches as well. There we have
> also a tagset sharing with the connect_q (and not only with multiple
> namespaces).
>
> But the connect_q is using a reserved tags only (for the connect commands).
>
> I saw some strange things that I couldn't understand:
>
> 1. running randread fio with libaio ioengine didn't call nvme_queue_rqs -
> expected
>
> *2. running randwrite fio with libaio ioengine did call nvme_queue_rqs - Not
> expected !!*
>
> *3. running randread fio with io_uring ioengine (and --iodepth_batch=32)
> didn't call nvme_queue_rqs - Not expected !!*
>
> 4. running randwrite fio with io_uring ioengine (and --iodepth_batch=32) did
> call nvme_queue_rqs - expected
>
> 5. *running randread fio with io_uring ioengine (and --iodepth_batch=32
> --runtime=30) didn't finish after 30 seconds and stuck for 300 seconds (fio
> jobs required "kill -9 fio" to remove refcounts from nvme_core) - Not
> expected !!*
>
> *debug pring: fio: job 'task_nvme0n1' (state=5) hasn't exited in 300
> seconds, it appears to be stuck. Doing forceful exit of this job.
> *
>
> *6. ***running randwrite fio with io_uring ioengine (and --iodepth_batch=32
> --runtime=30) didn't finish after 30 seconds and stuck for 300 seconds (fio
> jobs required "kill -9 fio" to remove refcounts from nvme_core) - Not
> expected !!**
>
> ***debug pring: fio: job 'task_nvme0n1' (state=5) hasn't exited in 300
> seconds, it appears to be stuck. Doing forceful exit of this job.***
>
>
> any idea what could cause these unexpected scenarios ? at least unexpected
> for me :)
Not sure about all the scenarios. I believe it should call queue_rqs
anytime we finish a plugged list of requests as long as the requests
come from the same request_queue, and it's not being flushed from
io_schedule().
The stuck fio job might be a lost request, which is what this series
should address. It would be unusual to see such an error happen in
normal operation, though. I had to synthesize errors to verify the bug
and fix.
In any case, I'll run more multi-namespace tests to see if I can find
any other issues with shared tags.
^ permalink raw reply
* Re: [PATCH V7 19/29] vfio-pci: cpr part 1 (fd and dma)
From: Steven Sistare @ 2022-01-05 17:24 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Daniel P. Berrange, Juan Quintela, Jason Zeng, Alex Bennée,
qemu-devel, Eric Blake, Dr. David Alan Gilbert, Zheng Chuan,
Alex Williamson, Stefan Hajnoczi, Marc-André Lureau,
Paolo Bonzini, Philippe Mathieu-Daudé, Markus Armbruster
In-Reply-To: <20211222181003-mutt-send-email-mst@kernel.org>
On 12/22/2021 6:15 PM, Michael S. Tsirkin wrote:
> On Wed, Dec 22, 2021 at 11:05:24AM -0800, Steve Sistare wrote:
>> Enable vfio-pci devices to be saved and restored across an exec restart
>> of qemu.
>>
>> At vfio creation time, save the value of vfio container, group, and device
>> descriptors in cpr state.
>>
>> In cpr-save and cpr-exec, suspend the use of virtual addresses in DMA
>> mappings with VFIO_DMA_UNMAP_FLAG_VADDR, because guest ram will be remapped
>> at a different VA after exec. DMA to already-mapped pages continues. Save
>> the msi message area as part of vfio-pci vmstate, save the interrupt and
>> notifier eventfd's in cpr state, and clear the close-on-exec flag for the
>> vfio descriptors. The flag is not cleared earlier because the descriptors
>> should not persist across miscellaneous fork and exec calls that may be
>> performed during normal operation.
>>
>> On qemu restart, vfio_realize() finds the saved descriptors, uses
>> the descriptors, and notes that the device is being reused. Device and
>> iommu state is already configured, so operations in vfio_realize that
>> would modify the configuration are skipped for a reused device, including
>> vfio ioctl's and writes to PCI configuration space. The result is that
>> vfio_realize constructs qemu data structures that reflect the current
>> state of the device. However, the reconstruction is not complete until
>> cpr-load is called. cpr-load loads the msi data and finds eventfds in cpr
>> state. It rebuilds vector data structures and attaches the interrupts to
>> the new KVM instance. cpr-load then invokes the main vfio listener callback,
>> which walks the flattened ranges of the vfio_address_spaces and calls
>> VFIO_DMA_MAP_FLAG_VADDR to inform the kernel of the new VA's. Lastly, it
>> starts the VM and suppresses vfio pci device reset.
>>
>> This functionality is delivered by 3 patches for clarity. Part 1 handles
>> device file descriptors and DMA. Part 2 adds eventfd and MSI/MSI-X vector
>> support. Part 3 adds INTX support.
>>
>> Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
>> ---
>> MAINTAINERS | 1 +
>> hw/pci/pci.c | 10 ++++
>> hw/vfio/common.c | 115 ++++++++++++++++++++++++++++++++++++++----
>> hw/vfio/cpr.c | 94 ++++++++++++++++++++++++++++++++++
>> hw/vfio/meson.build | 1 +
>> hw/vfio/pci.c | 77 ++++++++++++++++++++++++++++
>> hw/vfio/trace-events | 1 +
>> include/hw/pci/pci.h | 1 +
>> include/hw/vfio/vfio-common.h | 8 +++
>> include/migration/cpr.h | 3 ++
>> migration/cpr.c | 10 +++-
>> migration/target.c | 14 +++++
>> 12 files changed, 324 insertions(+), 11 deletions(-)
>> create mode 100644 hw/vfio/cpr.c
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index cfe7480..feed239 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -2992,6 +2992,7 @@ CPR
>> M: Steve Sistare <steven.sistare@oracle.com>
>> M: Mark Kanda <mark.kanda@oracle.com>
>> S: Maintained
>> +F: hw/vfio/cpr.c
>> F: include/migration/cpr.h
>> F: migration/cpr.c
>> F: qapi/cpr.json
>> diff --git a/hw/pci/pci.c b/hw/pci/pci.c
>> index 0fd21e1..e35df4f 100644
>> --- a/hw/pci/pci.c
>> +++ b/hw/pci/pci.c
>> @@ -307,6 +307,16 @@ static void pci_do_device_reset(PCIDevice *dev)
>> {
>> int r;
>>
>> + /*
>> + * A reused vfio-pci device is already configured, so do not reset it
>> + * during qemu_system_reset prior to cpr-load, else interrupts may be
>> + * lost. By contrast, pure-virtual pci devices may be reset here and
>> + * updated with new state in cpr-load with no ill effects.
>> + */
>> + if (dev->reused) {
>> + return;
>> + }
>> +
>> pci_device_deassert_intx(dev);
>> assert(dev->irq_state == 0);
>>
>
>
> Hmm that's a weird thing to do. I suspect this works because
> "reused" means something like "in the process of being restored"?
> Because clearly, we do not want to skip this part e.g. when
> guest resets the device.
Exactly. vfio_realize sets the flag if it detects the device is reused during
a restart, and vfio_pci_post_load clears the reused flag.
> So a better name could be called for, but really I don't
> love how vfio gets to poke at internal PCI state.
> I'd rather we found a way just not to call this function.
> If we can't, maybe an explicit API, and make it
> actually say what it's doing?
How about:
pci_set_restore(PCIDevice *dev) { dev->restore = true; }
pci_clr_restore(PCIDevice *dev) { dev->restore = false; }
vfio_realize()
pci_set_restore(pdev)
vfio_pci_post_load()
pci_clr_restore(pdev)
pci_do_device_reset()
if (dev->restore)
return;
- Steve
^ permalink raw reply
* [GIT PULL] Reset controller updates vor v5.17
From: Philipp Zabel @ 2022-01-05 17:26 UTC (permalink / raw)
To: soc; +Cc: linux-arm-kernel, kernel
Dear arm-soc maintainers,
The following changes since commit fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf:
Linux 5.16-rc1 (2021-11-14 13:56:52 -0800)
are available in the Git repository at:
git://git.pengutronix.de/pza/linux.git tags/reset-for-v5.17
for you to fetch changes up to 89e7a6698fdd6d0cccf5bab11abc51f813944cd8:
reset: uniphier-glue: Use devm_add_action_or_reset() (2021-12-16 09:59:55 +0100)
----------------------------------------------------------------
Reset controller updates vor v5.17
Add an optional variant of of_reset_control_get_exclusive(), document
a deprecated hi3660-reset device tree property, check whether reset
deassertion worked in the reset-rzg2l-usbphy-ctrl driver, and simplify
the uniphier-glue driver a bit.
----------------------------------------------------------------
Biju Das (1):
reset: Add of_reset_control_get_optional_exclusive()
David Heidelberg (1):
dt-bindings: reset: document deprecated HiSilicon property
Heiner Kallweit (1):
reset: renesas: Check return value of reset_control_deassert()
Philipp Zabel (2):
reset: uniphier-glue: Use reset_control_bulk API
reset: uniphier-glue: Use devm_add_action_or_reset()
.../bindings/reset/hisilicon,hi3660-reset.yaml | 5 ++
drivers/reset/reset-rzg2l-usbphy-ctrl.c | 4 +-
drivers/reset/reset-uniphier-glue.c | 75 ++++++++++------------
include/linux/reset.h | 20 ++++++
4 files changed, 62 insertions(+), 42 deletions(-)
^ permalink raw reply
* stable/linux-5.15.y build: 183 builds: 4 failed, 179 passed, 14 errors, 5 warnings (v5.15.13)
From: kernelci.org bot @ 2022-01-05 17:26 UTC (permalink / raw)
To: stable, kernel-build-reports, kernelci-results
stable/linux-5.15.y build: 183 builds: 4 failed, 179 passed, 14 errors, 5 warnings (v5.15.13)
Full Build Summary: https://kernelci.org/build/stable/branch/linux-5.15.y/kernel/v5.15.13/
Tree: stable
Branch: linux-5.15.y
Git Describe: v5.15.13
Git Commit: 734eb1fd2073f503f5c6b44f1c0d453ca6986b84
Git URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
Built: 7 unique architectures
Build Failures Detected:
arm:
rpc_defconfig: (gcc-10) FAIL
mips:
decstation_64_defconfig: (gcc-10) FAIL
ip27_defconfig: (gcc-10) FAIL
ip28_defconfig: (gcc-10) FAIL
Errors and Warnings Detected:
arc:
tinyconfig (gcc-10): 1 warning
arm64:
arm:
rpc_defconfig (gcc-10): 4 errors
i386:
mips:
32r2el_defconfig (gcc-10): 1 warning
bigsur_defconfig (gcc-10): 1 error
cavium_octeon_defconfig (gcc-10): 1 error
decstation_64_defconfig (gcc-10): 1 error
fuloong2e_defconfig (gcc-10): 1 error
ip32_defconfig (gcc-10): 1 error
lemote2f_defconfig (gcc-10): 1 error, 1 warning
loongson2k_defconfig (gcc-10): 1 error, 1 warning
loongson3_defconfig (gcc-10): 1 error
nlm_xlp_defconfig (gcc-10): 1 error
rm200_defconfig (gcc-10): 1 warning
sb1250_swarm_defconfig (gcc-10): 1 error
riscv:
x86_64:
Errors summary:
10 expr: syntax error: unexpected argument ‘0xffffffff80000000’
2 arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv3m
2 arm-linux-gnueabihf-gcc: error: missing argument to ‘-march=’
Warnings summary:
2 net/mac80211/mlme.c:4352:1: warning: the frame size of 1200 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 drivers/block/paride/bpck.c:32: warning: "PC" redefined
1 arch/mips/boot/dts/img/boston.dts:128.19-178.5: Warning (pci_device_reg): /pci@14000000/pci2_root@0,0,0: PCI unit address format error, expected "0,0"
1 arch/arc/Makefile:26: ** WARNING ** CONFIG_ARC_TUNE_MCPU flag '' is unknown, fallback to ''
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
32r2el_defconfig (mips, gcc-10) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
arch/mips/boot/dts/img/boston.dts:128.19-178.5: Warning (pci_device_reg): /pci@14000000/pci2_root@0,0,0: PCI unit address format error, expected "0,0"
--------------------------------------------------------------------------------
allnoconfig (x86_64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (i386, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ar7_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
aspeed_g4_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
aspeed_g5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
assabet_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
at91_dt_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ath25_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ath79_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axm55xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axs103_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axs103_smp_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
badge4_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm2835_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bigsur_defconfig (mips, gcc-10) — PASS, 1 error, 0 warnings, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
--------------------------------------------------------------------------------
bmips_be_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bmips_stb_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
capcella_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips, gcc-10) — PASS, 1 error, 0 warnings, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
--------------------------------------------------------------------------------
cerfcube_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ci20_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cm_x300_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cobalt_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
collie_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
corgi_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cu1000-neo_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cu1830-neo_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
davinci_all_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
db1xxx_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
decstation_64_defconfig (mips, gcc-10) — FAIL, 1 error, 0 warnings, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
--------------------------------------------------------------------------------
decstation_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
decstation_r4k_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig (riscv, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig (arm64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig+arm64-chromebook (arm64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig+kselftest (arm64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
dove_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
e55_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ep93xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
exynos_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ezx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
footbridge_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips, gcc-10) — PASS, 1 error, 0 warnings, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
--------------------------------------------------------------------------------
gcw0_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
gemini_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
gpr_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h3600_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h5000_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
hackkit_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
haps_hs_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
haps_hs_smp_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
hisi_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
hsdk_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
i386_defconfig (i386, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
imote2_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
integrator_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
iop32x_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip22_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip27_defconfig (mips, gcc-10) — FAIL, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip28_defconfig (mips, gcc-10) — FAIL, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip32_defconfig (mips, gcc-10) — PASS, 1 error, 0 warnings, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jazz_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jmr3927_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jornada720_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
keystone_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lart_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lemote2f_defconfig (mips, gcc-10) — PASS, 1 error, 1 warning, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
Warnings:
net/mac80211/mlme.c:4352:1: warning: the frame size of 1200 bytes is larger than 1024 bytes [-Wframe-larger-than=]
--------------------------------------------------------------------------------
loongson1b_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson1c_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson2k_defconfig (mips, gcc-10) — PASS, 1 error, 1 warning, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
Warnings:
net/mac80211/mlme.c:4352:1: warning: the frame size of 1200 bytes is larger than 1024 bytes [-Wframe-larger-than=]
--------------------------------------------------------------------------------
loongson3_defconfig (mips, gcc-10) — PASS, 1 error, 0 warnings, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
--------------------------------------------------------------------------------
lpc18xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpd270_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lubbock_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
magician_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mainstone_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_qemu_32r6_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaup_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaup_xpa_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
milbeaut_m10v_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mini2440_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mmp2_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
moxart_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mpc30x_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mps2_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mtx1_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v4t_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v7_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mxs_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
neponset_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
netwinder_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nhk8815_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nlm_xlp_defconfig (mips, gcc-10) — PASS, 1 error, 0 warnings, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
--------------------------------------------------------------------------------
nlm_xlr_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nommu_k210_defconfig (riscv, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nommu_k210_sdcard_defconfig (riscv, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nsimosci_hs_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nsimosci_hs_smp_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
omap1_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
omap2plus_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
omega2p_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
orion5x_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
oxnas_v6_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
palmz72_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pcm027_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pic32mzda_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pleb_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa168_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa910_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
pxa_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
qcom_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rb532_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
realview_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rm200_defconfig (mips, gcc-10) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
drivers/block/paride/bpck.c:32: warning: "PC" redefined
--------------------------------------------------------------------------------
rpc_defconfig (arm, gcc-10) — FAIL, 4 errors, 0 warnings, 0 section mismatches
Errors:
arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv3m
arm-linux-gnueabihf-gcc: error: missing argument to ‘-march=’
arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv3m
arm-linux-gnueabihf-gcc: error: missing argument to ‘-march=’
--------------------------------------------------------------------------------
rs90_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rt305x_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rv32_defconfig (riscv, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s3c2410_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s3c6400_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s5pv210_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sama5_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sama7_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips, gcc-10) — PASS, 1 error, 0 warnings, 0 section mismatches
Errors:
expr: syntax error: unexpected argument ‘0xffffffff80000000’
--------------------------------------------------------------------------------
shannon_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
shmobile_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
simpad_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
socfpga_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spear13xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spear3xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spear6xx_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
spitz_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
stm32_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sunxi_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0219_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0226_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0287_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tegra_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (x86_64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (i386, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (arc, gcc-10) — PASS, 0 errors, 1 warning, 0 section mismatches
Warnings:
arch/arc/Makefile:26: ** WARNING ** CONFIG_ARC_TUNE_MCPU flag '' is unknown, fallback to ''
--------------------------------------------------------------------------------
trizeps4_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
u8500_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vdk_hs38_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vdk_hs38_smp_defconfig (arc, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
versatile_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vexpress_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vf610m4_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
viper_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vocore2_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
workpad_defconfig (mips, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig (x86_64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig+kselftest (x86_64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig+x86-chromebook (x86_64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig+x86-chromebook+kselftest (x86_64, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
xcep_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zeus_defconfig (arm, gcc-10) — PASS, 0 errors, 0 warnings, 0 section mismatches
---
For more info write to <info@kernelci.org>
^ permalink raw reply
* [GIT PULL] Reset controller fixes for v5.16, part 2
From: Philipp Zabel @ 2022-01-05 17:25 UTC (permalink / raw)
To: soc; +Cc: linux-arm-kernel, kernel
Dear arm-soc maintainers,
The following changes since commit 69125b4b9440be015783312e1b8753ec96febde0:
reset: tegra-bpmp: Revert Handle errors in BPMP response (2021-11-17 17:22:27 +0100)
are available in the Git repository at:
git://git.pengutronix.de/pza/linux.git tags/reset-fixes-for-v5.16-2
for you to fetch changes up to 92c959bae2e54ba1e2540ba5f813f7752bd76be1:
reset: renesas: Fix Runtime PM usage (2021-12-15 11:20:30 +0100)
----------------------------------------------------------------
Reset controller fixes for v5.16, part 2
Fix pm_runtime_resume_and_get() error handling in the
reset-rzg2l-usbphy-ctrl driver.
----------------------------------------------------------------
Heiner Kallweit (1):
reset: renesas: Fix Runtime PM usage
drivers/reset/reset-rzg2l-usbphy-ctrl.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
^ permalink raw reply
* Re: [PATCH 1/2] arm-bsp/trusted-firmware-a: use full option names in sgdisk call
From: Jon Mason @ 2022-01-05 17:24 UTC (permalink / raw)
To: meta-arm, Ross Burton
In-Reply-To: <20220104210558.3504309-1-ross.burton@arm.com>
On Tue, 4 Jan 2022 21:05:57 +0000, Ross Burton wrote:
> The TC appends include a long sgdisk invocation which can be made a lot
> clearer by using the full option names (e.g. --change-name) instead of
> short (e.g. -c).
Applied, thanks!
[1/2] arm-bsp/trusted-firmware-a: use full option names in sgdisk call
commit: 8d53f4c3eb03218d9b1c31f6bbfda8e6f2dc5bb1
[2/2] arm-bsp/trusted-firmware-a: upgrade TC to 2.6
commit: b398c1bcdfd653adc72d10882b21695d0d236988
Best regards,
--
Jon Mason <jon.mason@arm.com>
^ permalink raw reply
* Re: [PATCH V7 17/29] pci: export functions for cpr
From: Steven Sistare @ 2022-01-05 17:22 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Daniel P. Berrange, Juan Quintela, Jason Zeng, Alex Bennée,
qemu-devel, Eric Blake, Dr. David Alan Gilbert, Zheng Chuan,
Alex Williamson, Stefan Hajnoczi, Marc-André Lureau,
Paolo Bonzini, Philippe Mathieu-Daudé, Markus Armbruster
In-Reply-To: <20211222180611-mutt-send-email-mst@kernel.org>
On 12/22/2021 6:07 PM, Michael S. Tsirkin wrote:
> On Wed, Dec 22, 2021 at 11:05:22AM -0800, Steve Sistare wrote:
>> Export msix_is_pending, msix_init_vector_notifiers, and pci_update_mappings
>> for use by cpr. No functional change.
>>
>> Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
>
> With things like that, I prefer when the API is exported
> together with the patch that uses it.
> This was I can see why we are exporting these APIs.
> Esp wrt pci_update_mappings, it's designed as an
> internal API.
Hi Michael, thanks very much for reviewing these patches.
Serendipitously, I stopped calling pci_update_mappings from vfio code earlier
in the series. I will revert its scope.
I would prefer to keep this patch separate from the use of these functions in
"vfio-pci cpr part 2 msi", to make the latter smaller and easier to understand.
How about if I say more in this commit message? :
Export msix_is_pending and msix_init_vector_notifiers for use in vfio cpr.
Both are needed in the vfio-pci post-load function during cpr-load.
msix_is_pending is checked to enable the PBA memory region.
msix_init_vector_notifiers is called to register notifier callbacks, without
the other side effects of msix_set_vector_notifiers.
- Steve
>> ---
>> hw/pci/msix.c | 20 ++++++++++++++------
>> hw/pci/pci.c | 3 +--
>> include/hw/pci/msix.h | 5 +++++
>> include/hw/pci/pci.h | 1 +
>> 4 files changed, 21 insertions(+), 8 deletions(-)
>>
>> diff --git a/hw/pci/msix.c b/hw/pci/msix.c
>> index ae9331c..73f4259 100644
>> --- a/hw/pci/msix.c
>> +++ b/hw/pci/msix.c
>> @@ -64,7 +64,7 @@ static uint8_t *msix_pending_byte(PCIDevice *dev, int vector)
>> return dev->msix_pba + vector / 8;
>> }
>>
>> -static int msix_is_pending(PCIDevice *dev, int vector)
>> +int msix_is_pending(PCIDevice *dev, unsigned int vector)
>> {
>> return *msix_pending_byte(dev, vector) & msix_pending_mask(vector);
>> }
>> @@ -579,6 +579,17 @@ static void msix_unset_notifier_for_vector(PCIDevice *dev, unsigned int vector)
>> dev->msix_vector_release_notifier(dev, vector);
>> }
>>
>> +void msix_init_vector_notifiers(PCIDevice *dev,
>> + MSIVectorUseNotifier use_notifier,
>> + MSIVectorReleaseNotifier release_notifier,
>> + MSIVectorPollNotifier poll_notifier)
>> +{
>> + assert(use_notifier && release_notifier);
>> + dev->msix_vector_use_notifier = use_notifier;
>> + dev->msix_vector_release_notifier = release_notifier;
>> + dev->msix_vector_poll_notifier = poll_notifier;
>> +}
>> +
>> int msix_set_vector_notifiers(PCIDevice *dev,
>> MSIVectorUseNotifier use_notifier,
>> MSIVectorReleaseNotifier release_notifier,
>> @@ -586,11 +597,8 @@ int msix_set_vector_notifiers(PCIDevice *dev,
>> {
>> int vector, ret;
>>
>> - assert(use_notifier && release_notifier);
>> -
>> - dev->msix_vector_use_notifier = use_notifier;
>> - dev->msix_vector_release_notifier = release_notifier;
>> - dev->msix_vector_poll_notifier = poll_notifier;
>> + msix_init_vector_notifiers(dev, use_notifier, release_notifier,
>> + poll_notifier);
>>
>> if ((dev->config[dev->msix_cap + MSIX_CONTROL_OFFSET] &
>> (MSIX_ENABLE_MASK | MSIX_MASKALL_MASK)) == MSIX_ENABLE_MASK) {
>> diff --git a/hw/pci/pci.c b/hw/pci/pci.c
>> index e5993c1..0fd21e1 100644
>> --- a/hw/pci/pci.c
>> +++ b/hw/pci/pci.c
>> @@ -225,7 +225,6 @@ static const TypeInfo pcie_bus_info = {
>> };
>>
>> static PCIBus *pci_find_bus_nr(PCIBus *bus, int bus_num);
>> -static void pci_update_mappings(PCIDevice *d);
>> static void pci_irq_handler(void *opaque, int irq_num, int level);
>> static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom, Error **);
>> static void pci_del_option_rom(PCIDevice *pdev);
>> @@ -1366,7 +1365,7 @@ static pcibus_t pci_bar_address(PCIDevice *d,
>> return new_addr;
>> }
>>
>> -static void pci_update_mappings(PCIDevice *d)
>> +void pci_update_mappings(PCIDevice *d)
>> {
>> PCIIORegion *r;
>> int i;
>> diff --git a/include/hw/pci/msix.h b/include/hw/pci/msix.h
>> index 4c4a60c..46606cf 100644
>> --- a/include/hw/pci/msix.h
>> +++ b/include/hw/pci/msix.h
>> @@ -32,6 +32,7 @@ int msix_present(PCIDevice *dev);
>> bool msix_is_masked(PCIDevice *dev, unsigned vector);
>> void msix_set_pending(PCIDevice *dev, unsigned vector);
>> void msix_clr_pending(PCIDevice *dev, int vector);
>> +int msix_is_pending(PCIDevice *dev, unsigned vector);
>>
>> int msix_vector_use(PCIDevice *dev, unsigned vector);
>> void msix_vector_unuse(PCIDevice *dev, unsigned vector);
>> @@ -41,6 +42,10 @@ void msix_notify(PCIDevice *dev, unsigned vector);
>>
>> void msix_reset(PCIDevice *dev);
>>
>> +void msix_init_vector_notifiers(PCIDevice *dev,
>> + MSIVectorUseNotifier use_notifier,
>> + MSIVectorReleaseNotifier release_notifier,
>> + MSIVectorPollNotifier poll_notifier);
>> int msix_set_vector_notifiers(PCIDevice *dev,
>> MSIVectorUseNotifier use_notifier,
>> MSIVectorReleaseNotifier release_notifier,
>> diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
>> index e7cdf2d..cc63dd4 100644
>> --- a/include/hw/pci/pci.h
>> +++ b/include/hw/pci/pci.h
>> @@ -910,5 +910,6 @@ extern const VMStateDescription vmstate_pci_device;
>>
>> MSIMessage pci_get_msi_message(PCIDevice *dev, int vector);
>> void pci_set_power(PCIDevice *pci_dev, bool state);
>> +void pci_update_mappings(PCIDevice *d);
>>
>> #endif
>> --
>> 1.8.3.1
>
^ permalink raw reply
* [meta-yocto][dunfell 1/1] linux-yocto/5.4: update genericx86* machines to v5.4.158
From: Steve Sakoman @ 2022-01-05 17:23 UTC (permalink / raw)
To: poky
In-Reply-To: <cover.1641403315.git.steve@sakoman.com>
From: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
.../recipes-kernel/linux/linux-yocto_5.4.bbappend | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend
index 35147d2..cd059c0 100644
--- a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend
+++ b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend
@@ -7,8 +7,8 @@ KMACHINE_genericx86 ?= "common-pc"
KMACHINE_genericx86-64 ?= "common-pc-64"
KMACHINE_beaglebone-yocto ?= "beaglebone"
-SRCREV_machine_genericx86 ?= "31db2b47ac7d8508080fbb7344399b501216de66"
-SRCREV_machine_genericx86-64 ?= "31db2b47ac7d8508080fbb7344399b501216de66"
+SRCREV_machine_genericx86 ?= "76404f1ae59698b6a446dba29c885ca78c69c330"
+SRCREV_machine_genericx86-64 ?= "76404f1ae59698b6a446dba29c885ca78c69c330"
SRCREV_machine_edgerouter ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
SRCREV_machine_beaglebone-yocto ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
@@ -17,7 +17,7 @@ COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
COMPATIBLE_MACHINE_edgerouter = "edgerouter"
COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto"
-LINUX_VERSION_genericx86 = "5.4.94"
-LINUX_VERSION_genericx86-64 = "5.4.94"
+LINUX_VERSION_genericx86 = "5.4.158"
+LINUX_VERSION_genericx86-64 = "5.4.158"
LINUX_VERSION_edgerouter = "5.4.58"
LINUX_VERSION_beaglebone-yocto = "5.4.58"
--
2.25.1
^ permalink raw reply related
* [meta-yocto][dunfell 0/1] Patch review
From: Steve Sakoman @ 2022-01-05 17:23 UTC (permalink / raw)
To: poky
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/3078
The following changes since commit fab607a8c53b419fa7109394edbf4e2e9d3c8b8a:
poky.conf: Bump version for 3.1.13 release (2021-12-13 23:28:45 +0000)
are available in the Git repository at:
git://git.yoctoproject.org/meta-yocto contrib/dunfell-next
http://git.yoctoproject.org/cgit.cgi/meta-yocto/log/?h=contrib/dunfell-next
Teoh Jay Shen (1):
linux-yocto/5.4: update genericx86* machines to v5.4.158
.../recipes-kernel/linux/linux-yocto_5.4.bbappend | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--
2.25.1
^ permalink raw reply
* Re: [PATCH V4 08/16] xfs: Introduce XFS_FSOP_GEOM_FLAGS_NREXT64
From: Darrick J. Wong @ 2022-01-05 17:22 UTC (permalink / raw)
To: Chandan Babu R; +Cc: linux-xfs, david
In-Reply-To: <87y23u8fft.fsf@debian-BULLSEYE-live-builder-AMD64>
On Wed, Jan 05, 2022 at 07:14:55PM +0530, Chandan Babu R wrote:
> On 05 Jan 2022 at 05:35, Darrick J. Wong wrote:
> > On Tue, Dec 14, 2021 at 02:15:11PM +0530, Chandan Babu R wrote:
> >> XFS_FSOP_GEOM_FLAGS_NREXT64 indicates that the current filesystem instance
> >> supports 64-bit per-inode extent counters.
> >>
> >> Signed-off-by: Chandan Babu R <chandan.babu@oracle.com>
> >> ---
> >> fs/xfs/libxfs/xfs_fs.h | 1 +
> >> fs/xfs/libxfs/xfs_sb.c | 2 ++
> >> 2 files changed, 3 insertions(+)
> >>
> >> diff --git a/fs/xfs/libxfs/xfs_fs.h b/fs/xfs/libxfs/xfs_fs.h
> >> index c43877c8a279..42bc39501d81 100644
> >> --- a/fs/xfs/libxfs/xfs_fs.h
> >> +++ b/fs/xfs/libxfs/xfs_fs.h
> >> @@ -251,6 +251,7 @@ typedef struct xfs_fsop_resblks {
> >> #define XFS_FSOP_GEOM_FLAGS_REFLINK (1 << 20) /* files can share blocks */
> >> #define XFS_FSOP_GEOM_FLAGS_BIGTIME (1 << 21) /* 64-bit nsec timestamps */
> >> #define XFS_FSOP_GEOM_FLAGS_INOBTCNT (1 << 22) /* inobt btree counter */
> >> +#define XFS_FSOP_GEOM_FLAGS_NREXT64 (1 << 23) /* 64-bit extent counter */
> >>
> >> /*
> >> * Minimum and maximum sizes need for growth checks.
> >> diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c
> >> index bd632389ae92..0c1add39177f 100644
> >> --- a/fs/xfs/libxfs/xfs_sb.c
> >> +++ b/fs/xfs/libxfs/xfs_sb.c
> >> @@ -1138,6 +1138,8 @@ xfs_fs_geometry(
> >> } else {
> >> geo->logsectsize = BBSIZE;
> >> }
> >> + if (xfs_has_nrext64(mp))
> >> + geo->flags |= XFS_FSOP_GEOM_FLAGS_NREXT64;
> >> geo->rtsectsize = sbp->sb_blocksize;
> >> geo->dirblocksize = xfs_dir2_dirblock_bytes(sbp);
> >>
> >> --
> >> 2.30.2
> >>
>
> I think you accidently missed typing your response to this patch?
Yep.
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
--D
>
> --
> chandan
^ permalink raw reply
* Re: [PATCH V5 00/22] arch: Add basic LoongArch support
From: Xi Ruoyao @ 2022-01-05 17:21 UTC (permalink / raw)
To: Huacai Chen
Cc: Huacai Chen, Arnd Bergmann, Andy Lutomirski, Thomas Gleixner,
Peter Zijlstra, Andrew Morton, David Airlie, Jonathan Corbet,
Linus Torvalds, linux-arch, open list:DOCUMENTATION, LKML,
Xuefeng Li, Yanteng Si, Jiaxun Yang
In-Reply-To: <6d0169ca8c9e417308d3b9f96cd0ef446ee36fe7.camel@mengyan1223.wang>
On Wed, 2022-01-05 at 19:51 +0800, Xi Ruoyao wrote:
> On Wed, 2022-01-05 at 17:40 +0800, Huacai Chen wrote:
> > Hi, Ruoyao,
> >
> > The problem still exists in 5.16-rc8, can you try to change
> > cpu_relax() definition to smp_mb()? It seems can fix the problem.
>
> Is there any workload which can triggers the panic? I can't trigger it
> by building and testing GCC, or building the kernel anymore.
>
> And is your "stable" issue the same one I'd encountered? To me changing
> barrier() to smp_mb() may fix some deadlock, but not a panic. (I'm not
> an expert on CPU architecture or kernel programming, so maybe I'm wrong
> here.)
>
> I'll put my 3A5000 machine into a loop building kernel and see if I can
> trigger the panic again...
I can't reproduce the issue on 5.16-rc8. But I can reproduce it on
5.16-rc5 and the s/barrier/smp_mb/ change fixes the issue.
I'm still puzzled: if there some workload which can reproduce the issue
more deterministic?
--
Xi Ruoyao <xry111@mengyan1223.wang>
School of Aerospace Science and Technology, Xidian University
^ permalink raw reply
* Re: [PATCH V4 06/16] xfs: Promote xfs_extnum_t and xfs_aextnum_t to 64 and 32-bits respectively
From: Darrick J. Wong @ 2022-01-05 17:21 UTC (permalink / raw)
To: Chandan Babu R; +Cc: kernel test robot, linux-xfs, kbuild-all, david
In-Reply-To: <87h7ai8e2o.fsf@debian-BULLSEYE-live-builder-AMD64>
On Wed, Jan 05, 2022 at 07:44:23PM +0530, Chandan Babu R wrote:
> On 05 Jan 2022 at 05:24, Darrick J. Wong wrote:
> > On Wed, Dec 15, 2021 at 02:49:48PM +0530, Chandan Babu R wrote:
> >> On 14 Dec 2021 at 20:45, kernel test robot wrote:
> >> > Hi Chandan,
> >> >
> >> > Thank you for the patch! Yet something to improve:
> >> >
> >> > [auto build test ERROR on xfs-linux/for-next]
> >> > [also build test ERROR on v5.16-rc5]
> >> > [If your patch is applied to the wrong git tree, kindly drop us a note.
> >> > And when submitting patch, we suggest to use '--base' as documented in
> >> > https://git-scm.com/docs/git-format-patch]
> >> >
> >> > url: https://github.com/0day-ci/linux/commits/Chandan-Babu-R/xfs-Extend-per-inode-extent-counters/20211214-164920
> >> > base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
> >> > config: microblaze-randconfig-r016-20211214 (https://download.01.org/0day-ci/archive/20211214/202112142335.O3Nu0vQI-lkp@intel.com/config)
> >> > compiler: microblaze-linux-gcc (GCC) 11.2.0
> >> > reproduce (this is a W=1 build):
> >> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >> > chmod +x ~/bin/make.cross
> >> > # https://github.com/0day-ci/linux/commit/db28da144803c4262c0d8622d736a7d20952ef6b
> >> > git remote add linux-review https://github.com/0day-ci/linux
> >> > git fetch --no-tags linux-review Chandan-Babu-R/xfs-Extend-per-inode-extent-counters/20211214-164920
> >> > git checkout db28da144803c4262c0d8622d736a7d20952ef6b
> >> > # save the config file to linux build tree
> >> > mkdir build_dir
> >> > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=microblaze SHELL=/bin/bash
> >> >
> >> > If you fix the issue, kindly add following tag as appropriate
> >> > Reported-by: kernel test robot <lkp@intel.com>
> >> >
> >> > All errors (new ones prefixed by >>):
> >> >
> >> > microblaze-linux-ld: fs/xfs/libxfs/xfs_bmap.o: in function `xfs_bmap_compute_maxlevels':
> >> >>> (.text+0x10cc0): undefined reference to `__udivdi3'
> >> >
> >>
> >> The fix for the compilation error on 32-bit systems involved invoking do_div()
> >> instead of using the regular division operator. I will include the fix in the
> >> next version of the patchset.
> >
> > So, uh, how did you resolve this in the end?
> >
> > maxblocks = roundup_64(maxleafents, minleafrecs);
> >
> > and
> >
> > maxblocks = roundup_64(maxblocks, minnodrecs);
> >
> > ?
>
> I had made the following changes,
>
> maxblocks = maxleafents + minleafrecs - 1;
> do_div(maxblocks, minleafrecs);
>
> and
> maxblocks += minnoderecs - 1;
> do_div(maxblocks, minnoderecs);
>
> roundup_64() would cause maxleafents to have a value >= its previous value
> right?
roundup_64 doesn't alter its parameters, if I'm not mistaken:
static inline uint64_t roundup_64(uint64_t x, uint32_t y)
{
x += y - 1;
do_div(x, y);
return x * y;
}
--D
>
> --
> chandan
^ permalink raw reply
* Re: [PATCH V4 06/16] xfs: Promote xfs_extnum_t and xfs_aextnum_t to 64 and 32-bits respectively
From: Darrick J. Wong @ 2022-01-05 17:21 UTC (permalink / raw)
To: kbuild-all
In-Reply-To: <87h7ai8e2o.fsf@debian-BULLSEYE-live-builder-AMD64>
[-- Attachment #1: Type: text/plain, Size: 3115 bytes --]
On Wed, Jan 05, 2022 at 07:44:23PM +0530, Chandan Babu R wrote:
> On 05 Jan 2022 at 05:24, Darrick J. Wong wrote:
> > On Wed, Dec 15, 2021 at 02:49:48PM +0530, Chandan Babu R wrote:
> >> On 14 Dec 2021 at 20:45, kernel test robot wrote:
> >> > Hi Chandan,
> >> >
> >> > Thank you for the patch! Yet something to improve:
> >> >
> >> > [auto build test ERROR on xfs-linux/for-next]
> >> > [also build test ERROR on v5.16-rc5]
> >> > [If your patch is applied to the wrong git tree, kindly drop us a note.
> >> > And when submitting patch, we suggest to use '--base' as documented in
> >> > https://git-scm.com/docs/git-format-patch]
> >> >
> >> > url: https://github.com/0day-ci/linux/commits/Chandan-Babu-R/xfs-Extend-per-inode-extent-counters/20211214-164920
> >> > base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
> >> > config: microblaze-randconfig-r016-20211214 (https://download.01.org/0day-ci/archive/20211214/202112142335.O3Nu0vQI-lkp(a)intel.com/config)
> >> > compiler: microblaze-linux-gcc (GCC) 11.2.0
> >> > reproduce (this is a W=1 build):
> >> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >> > chmod +x ~/bin/make.cross
> >> > # https://github.com/0day-ci/linux/commit/db28da144803c4262c0d8622d736a7d20952ef6b
> >> > git remote add linux-review https://github.com/0day-ci/linux
> >> > git fetch --no-tags linux-review Chandan-Babu-R/xfs-Extend-per-inode-extent-counters/20211214-164920
> >> > git checkout db28da144803c4262c0d8622d736a7d20952ef6b
> >> > # save the config file to linux build tree
> >> > mkdir build_dir
> >> > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=microblaze SHELL=/bin/bash
> >> >
> >> > If you fix the issue, kindly add following tag as appropriate
> >> > Reported-by: kernel test robot <lkp@intel.com>
> >> >
> >> > All errors (new ones prefixed by >>):
> >> >
> >> > microblaze-linux-ld: fs/xfs/libxfs/xfs_bmap.o: in function `xfs_bmap_compute_maxlevels':
> >> >>> (.text+0x10cc0): undefined reference to `__udivdi3'
> >> >
> >>
> >> The fix for the compilation error on 32-bit systems involved invoking do_div()
> >> instead of using the regular division operator. I will include the fix in the
> >> next version of the patchset.
> >
> > So, uh, how did you resolve this in the end?
> >
> > maxblocks = roundup_64(maxleafents, minleafrecs);
> >
> > and
> >
> > maxblocks = roundup_64(maxblocks, minnodrecs);
> >
> > ?
>
> I had made the following changes,
>
> maxblocks = maxleafents + minleafrecs - 1;
> do_div(maxblocks, minleafrecs);
>
> and
> maxblocks += minnoderecs - 1;
> do_div(maxblocks, minnoderecs);
>
> roundup_64() would cause maxleafents to have a value >= its previous value
> right?
roundup_64 doesn't alter its parameters, if I'm not mistaken:
static inline uint64_t roundup_64(uint64_t x, uint32_t y)
{
x += y - 1;
do_div(x, y);
return x * y;
}
--D
>
> --
> chandan
^ permalink raw reply
* [Intel-gfx] [PATCH i-g-t] tests/i915/userptr: fix mapping type
From: Matthew Auld @ 2022-01-05 17:21 UTC (permalink / raw)
To: igt-dev; +Cc: Thomas Hellström, intel-gfx, Priyanka Dandamudi
We need to use the FIXED mapping type on discrete platforms.
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
---
tests/i915/gem_userptr_blits.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c
index 3464db66..a4dca4c0 100644
--- a/tests/i915/gem_userptr_blits.c
+++ b/tests/i915/gem_userptr_blits.c
@@ -2185,7 +2185,10 @@ static void test_probe(int fd)
*/
memset(&mmap_offset, 0, sizeof(mmap_offset));
mmap_offset.handle = gem_create(fd, PAGE_SIZE);
- mmap_offset.flags = I915_MMAP_OFFSET_WB;
+ if (gem_has_lmem(fd))
+ mmap_offset.flags = I915_MMAP_OFFSET_FIXED;
+ else
+ mmap_offset.flags = I915_MMAP_OFFSET_WB;
igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_I915_GEM_MMAP_OFFSET, &mmap_offset), 0);
for (unsigned long pass = 0; pass < 4 * 4 * 4 * 4 * 4; pass++) {
--
2.31.1
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.