Commit 67bae14a authored by Jiri Kosina's avatar Jiri Kosina
Browse files

Merge branch 'for-5.0/upstream-fixes' into for-linus

Document change towards group maintainership of livepatching code
samples/ warning fix from Nicholas Mc Guire
parents bae05437 b73d5dc7
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -8820,10 +8820,10 @@ F: drivers/platform/x86/hp_accel.c

LIVE PATCHING
M:	Josh Poimboeuf <jpoimboe@redhat.com>
M:	Jessica Yu <jeyu@kernel.org>
M:	Jiri Kosina <jikos@kernel.org>
M:	Miroslav Benes <mbenes@suse.cz>
R:	Petr Mladek <pmladek@suse.com>
M:	Petr Mladek <pmladek@suse.com>
R:	Joe Lawrence <joe.lawrence@redhat.com>
S:	Maintained
F:	kernel/livepatch/
F:	include/linux/livepatch.h
@@ -8834,7 +8834,7 @@ F: Documentation/ABI/testing/sysfs-kernel-livepatch
F:	samples/livepatch/
F:	tools/testing/selftests/livepatch/
L:	live-patching@vger.kernel.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching.git

LLC (802.2)
L:	netdev@vger.kernel.org
+2 −2
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ static int shadow_leak_ctor(void *obj, void *shadow_data, void *ctor_data)
	return 0;
}

struct dummy *livepatch_fix1_dummy_alloc(void)
static struct dummy *livepatch_fix1_dummy_alloc(void)
{
	struct dummy *d;
	void *leak;
@@ -113,7 +113,7 @@ static void livepatch_fix1_dummy_leak_dtor(void *obj, void *shadow_data)
			 __func__, d, *shadow_leak);
}

void livepatch_fix1_dummy_free(struct dummy *d)
static void livepatch_fix1_dummy_free(struct dummy *d)
{
	void **shadow_leak;

+2 −2
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ struct dummy {
	unsigned long jiffies_expire;
};

bool livepatch_fix2_dummy_check(struct dummy *d, unsigned long jiffies)
static bool livepatch_fix2_dummy_check(struct dummy *d, unsigned long jiffies)
{
	int *shadow_count;

@@ -78,7 +78,7 @@ static void livepatch_fix2_dummy_leak_dtor(void *obj, void *shadow_data)
			 __func__, d, *shadow_leak);
}

void livepatch_fix2_dummy_free(struct dummy *d)
static void livepatch_fix2_dummy_free(struct dummy *d)
{
	void **shadow_leak;
	int *shadow_count;
+6 −5
Original line number Diff line number Diff line
@@ -96,15 +96,15 @@ MODULE_DESCRIPTION("Buggy module for shadow variable demo");
 * Keep a list of all the dummies so we can clean up any residual ones
 * on module exit
 */
LIST_HEAD(dummy_list);
DEFINE_MUTEX(dummy_list_mutex);
static LIST_HEAD(dummy_list);
static DEFINE_MUTEX(dummy_list_mutex);

struct dummy {
	struct list_head list;
	unsigned long jiffies_expire;
};

noinline struct dummy *dummy_alloc(void)
static __used noinline struct dummy *dummy_alloc(void)
{
	struct dummy *d;
	void *leak;
@@ -129,7 +129,7 @@ noinline struct dummy *dummy_alloc(void)
	return d;
}

noinline void dummy_free(struct dummy *d)
static __used noinline void dummy_free(struct dummy *d)
{
	pr_info("%s: dummy @ %p, expired = %lx\n",
		__func__, d, d->jiffies_expire);
@@ -137,7 +137,8 @@ noinline void dummy_free(struct dummy *d)
	kfree(d);
}

noinline bool dummy_check(struct dummy *d, unsigned long jiffies)
static __used noinline bool dummy_check(struct dummy *d,
					   unsigned long jiffies)
{
	return time_after(jiffies, d->jiffies_expire);
}