mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
Linux 5.2-rc5
-----BEGIN PGP SIGNATURE----- iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAl0Gj1MeHHRvcnZhbGRz QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGctkH/0At3+SQPY2JJSy8 i6+TDeytFx9OggeGLPHChRfehkAlvMb/kd34QHnuEvDqUuCAMU6HZQJFKoK9mvFI sDJVayPGDSqpm+iv8qLpMBPShiCXYVnGZeVfOdv36jUswL0k6wHV1pz4avFkDeZa 1F4pmI6O2XRkNTYQawbUaFkAngWUCBG9ECLnHJnuIY6ohShBvjI4+E2JUaht+8gO M2h2b9ieddWmjxV3LTKgsK1v+347RljxdZTWnJ62SCDSEVZvsgSA9W2wnebVhBkJ drSmrFLxNiM+W45mkbUFmQixRSmjv++oRR096fxAnodBxMw0TDxE1RiMQWE6rVvG N6MC6xA= =+B0P -----END PGP SIGNATURE----- Merge tag 'v5.2-rc5' into locking/core, to pick up fixes Signed-off-by: Ingo Molnar <[email protected]>
This commit is contained in:
commit
410df0c574
4083 changed files with 8539 additions and 34971 deletions
|
|
@ -1,12 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* A generic implementation of binary search for the Linux kernel
|
||||
*
|
||||
* Copyright (C) 2008-2009 Ksplice, Inc.
|
||||
* Author: Tim Abbott <tabbott@ksplice.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; version 2.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* lib/btree.c - Simple In-memory B+Tree
|
||||
*
|
||||
* As should be obvious for Linux kernel code, license is GPLv2
|
||||
*
|
||||
* Copyright (c) 2007-2008 Joern Engel <joern@purestorage.com>
|
||||
* Bits and pieces stolen from Peter Zijlstra's code, which is
|
||||
* Copyright 2007, Red Hat Inc. Peter Zijlstra
|
||||
* GPLv2
|
||||
*
|
||||
* see http://programming.kicks-ass.net/kernel-patches/vma_lookup/btree.patch
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2011 Nokia Corporation
|
||||
* Copyright (C) 2011 Intel Corporation
|
||||
|
|
@ -6,10 +7,6 @@
|
|||
* Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
|
||||
* <dmitry.kasatkin@intel.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 2 of the License.
|
||||
*
|
||||
* File: sign.c
|
||||
* implements signature (RSA) verification
|
||||
* pkcs decoding is based on LibTomCrypt code
|
||||
|
|
|
|||
|
|
@ -1,16 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/* ----------------------------------------------------------------------- *
|
||||
*
|
||||
* Copyright 2012 Intel Corporation; author H. Peter Anvin
|
||||
*
|
||||
* This file is part of the Linux kernel, and is made available
|
||||
* under the terms of the GNU General Public License version 2, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* ----------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1,16 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Test for find_*_bit functions.
|
||||
*
|
||||
* Copyright (c) 2017 Cavium.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2 of the GNU General Public
|
||||
* License as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -168,20 +168,21 @@ struct gen_pool *gen_pool_create(int min_alloc_order, int nid)
|
|||
EXPORT_SYMBOL(gen_pool_create);
|
||||
|
||||
/**
|
||||
* gen_pool_add_virt - add a new chunk of special memory to the pool
|
||||
* gen_pool_add_owner- add a new chunk of special memory to the pool
|
||||
* @pool: pool to add new memory chunk to
|
||||
* @virt: virtual starting address of memory chunk to add to pool
|
||||
* @phys: physical starting address of memory chunk to add to pool
|
||||
* @size: size in bytes of the memory chunk to add to pool
|
||||
* @nid: node id of the node the chunk structure and bitmap should be
|
||||
* allocated on, or -1
|
||||
* @owner: private data the publisher would like to recall at alloc time
|
||||
*
|
||||
* Add a new chunk of special memory to the specified pool.
|
||||
*
|
||||
* Returns 0 on success or a -ve errno on failure.
|
||||
*/
|
||||
int gen_pool_add_virt(struct gen_pool *pool, unsigned long virt, phys_addr_t phys,
|
||||
size_t size, int nid)
|
||||
int gen_pool_add_owner(struct gen_pool *pool, unsigned long virt, phys_addr_t phys,
|
||||
size_t size, int nid, void *owner)
|
||||
{
|
||||
struct gen_pool_chunk *chunk;
|
||||
int nbits = size >> pool->min_alloc_order;
|
||||
|
|
@ -195,6 +196,7 @@ int gen_pool_add_virt(struct gen_pool *pool, unsigned long virt, phys_addr_t phy
|
|||
chunk->phys_addr = phys;
|
||||
chunk->start_addr = virt;
|
||||
chunk->end_addr = virt + size - 1;
|
||||
chunk->owner = owner;
|
||||
atomic_long_set(&chunk->avail, size);
|
||||
|
||||
spin_lock(&pool->lock);
|
||||
|
|
@ -203,7 +205,7 @@ int gen_pool_add_virt(struct gen_pool *pool, unsigned long virt, phys_addr_t phy
|
|||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(gen_pool_add_virt);
|
||||
EXPORT_SYMBOL(gen_pool_add_owner);
|
||||
|
||||
/**
|
||||
* gen_pool_virt_to_phys - return the physical address of memory
|
||||
|
|
@ -260,35 +262,20 @@ void gen_pool_destroy(struct gen_pool *pool)
|
|||
EXPORT_SYMBOL(gen_pool_destroy);
|
||||
|
||||
/**
|
||||
* gen_pool_alloc - allocate special memory from the pool
|
||||
* @pool: pool to allocate from
|
||||
* @size: number of bytes to allocate from the pool
|
||||
*
|
||||
* Allocate the requested number of bytes from the specified pool.
|
||||
* Uses the pool allocation function (with first-fit algorithm by default).
|
||||
* Can not be used in NMI handler on architectures without
|
||||
* NMI-safe cmpxchg implementation.
|
||||
*/
|
||||
unsigned long gen_pool_alloc(struct gen_pool *pool, size_t size)
|
||||
{
|
||||
return gen_pool_alloc_algo(pool, size, pool->algo, pool->data);
|
||||
}
|
||||
EXPORT_SYMBOL(gen_pool_alloc);
|
||||
|
||||
/**
|
||||
* gen_pool_alloc_algo - allocate special memory from the pool
|
||||
* gen_pool_alloc_algo_owner - allocate special memory from the pool
|
||||
* @pool: pool to allocate from
|
||||
* @size: number of bytes to allocate from the pool
|
||||
* @algo: algorithm passed from caller
|
||||
* @data: data passed to algorithm
|
||||
* @owner: optionally retrieve the chunk owner
|
||||
*
|
||||
* Allocate the requested number of bytes from the specified pool.
|
||||
* Uses the pool allocation function (with first-fit algorithm by default).
|
||||
* Can not be used in NMI handler on architectures without
|
||||
* NMI-safe cmpxchg implementation.
|
||||
*/
|
||||
unsigned long gen_pool_alloc_algo(struct gen_pool *pool, size_t size,
|
||||
genpool_algo_t algo, void *data)
|
||||
unsigned long gen_pool_alloc_algo_owner(struct gen_pool *pool, size_t size,
|
||||
genpool_algo_t algo, void *data, void **owner)
|
||||
{
|
||||
struct gen_pool_chunk *chunk;
|
||||
unsigned long addr = 0;
|
||||
|
|
@ -299,6 +286,9 @@ unsigned long gen_pool_alloc_algo(struct gen_pool *pool, size_t size,
|
|||
BUG_ON(in_nmi());
|
||||
#endif
|
||||
|
||||
if (owner)
|
||||
*owner = NULL;
|
||||
|
||||
if (size == 0)
|
||||
return 0;
|
||||
|
||||
|
|
@ -326,12 +316,14 @@ retry:
|
|||
addr = chunk->start_addr + ((unsigned long)start_bit << order);
|
||||
size = nbits << order;
|
||||
atomic_long_sub(size, &chunk->avail);
|
||||
if (owner)
|
||||
*owner = chunk->owner;
|
||||
break;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
return addr;
|
||||
}
|
||||
EXPORT_SYMBOL(gen_pool_alloc_algo);
|
||||
EXPORT_SYMBOL(gen_pool_alloc_algo_owner);
|
||||
|
||||
/**
|
||||
* gen_pool_dma_alloc - allocate special memory from the pool for DMA usage
|
||||
|
|
@ -367,12 +359,14 @@ EXPORT_SYMBOL(gen_pool_dma_alloc);
|
|||
* @pool: pool to free to
|
||||
* @addr: starting address of memory to free back to pool
|
||||
* @size: size in bytes of memory to free
|
||||
* @owner: private data stashed at gen_pool_add() time
|
||||
*
|
||||
* Free previously allocated special memory back to the specified
|
||||
* pool. Can not be used in NMI handler on architectures without
|
||||
* NMI-safe cmpxchg implementation.
|
||||
*/
|
||||
void gen_pool_free(struct gen_pool *pool, unsigned long addr, size_t size)
|
||||
void gen_pool_free_owner(struct gen_pool *pool, unsigned long addr, size_t size,
|
||||
void **owner)
|
||||
{
|
||||
struct gen_pool_chunk *chunk;
|
||||
int order = pool->min_alloc_order;
|
||||
|
|
@ -382,6 +376,9 @@ void gen_pool_free(struct gen_pool *pool, unsigned long addr, size_t size)
|
|||
BUG_ON(in_nmi());
|
||||
#endif
|
||||
|
||||
if (owner)
|
||||
*owner = NULL;
|
||||
|
||||
nbits = (size + (1UL << order) - 1) >> order;
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(chunk, &pool->chunks, next_chunk) {
|
||||
|
|
@ -392,6 +389,8 @@ void gen_pool_free(struct gen_pool *pool, unsigned long addr, size_t size)
|
|||
BUG_ON(remain);
|
||||
size = nbits << order;
|
||||
atomic_long_add(size, &chunk->avail);
|
||||
if (owner)
|
||||
*owner = chunk->owner;
|
||||
rcu_read_unlock();
|
||||
return;
|
||||
}
|
||||
|
|
@ -399,7 +398,7 @@ void gen_pool_free(struct gen_pool *pool, unsigned long addr, size_t size)
|
|||
rcu_read_unlock();
|
||||
BUG();
|
||||
}
|
||||
EXPORT_SYMBOL(gen_pool_free);
|
||||
EXPORT_SYMBOL(gen_pool_free_owner);
|
||||
|
||||
/**
|
||||
* gen_pool_for_each_chunk - call func for every chunk of generic memory pool
|
||||
|
|
|
|||
14
lib/llist.c
14
lib/llist.c
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Lock-less NULL terminated single linked list
|
||||
*
|
||||
|
|
@ -8,19 +9,6 @@
|
|||
*
|
||||
* Copyright 2010,2011 Intel Corp.
|
||||
* Author: Huang Ying <ying.huang@intel.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License version
|
||||
* 2 as published by the Free Software Foundation;
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/export.h>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
* failure case.
|
||||
*/
|
||||
#define CMPXCHG_LOOP(CODE, SUCCESS) do { \
|
||||
int retry = 100; \
|
||||
struct lockref old; \
|
||||
BUILD_BUG_ON(sizeof(old) != 8); \
|
||||
old.lock_count = READ_ONCE(lockref->lock_count); \
|
||||
|
|
@ -21,6 +22,8 @@
|
|||
if (likely(old.lock_count == prev.lock_count)) { \
|
||||
SUCCESS; \
|
||||
} \
|
||||
if (!--retry) \
|
||||
break; \
|
||||
cpu_relax(); \
|
||||
} \
|
||||
} while (0)
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2012 Intel Corporation
|
||||
* Author: Jim Kukunas <james.t.kukunas@linux.intel.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; version 2
|
||||
* of the License.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_AS_AVX2
|
||||
|
|
|
|||
|
|
@ -1,14 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2016 Intel Corporation
|
||||
*
|
||||
* Author: Gayatri Kammela <gayatri.kammela@intel.com>
|
||||
* Author: Megha Dey <megha.dey@linux.intel.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; version 2
|
||||
* of the License.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_AS_AVX512
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2012 Intel Corporation
|
||||
* Copyright (C) 2017 Linaro Ltd. <ard.biesheuvel@linaro.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; version 2
|
||||
* of the License.
|
||||
*/
|
||||
|
||||
#include <linux/raid/pq.h>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2012 Intel Corporation
|
||||
* Copyright (C) 2017 Linaro Ltd. <ard.biesheuvel@linaro.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; version 2
|
||||
* of the License.
|
||||
*/
|
||||
|
||||
#include <arm_neon.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2012 Intel Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; version 2
|
||||
* of the License.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_AS_SSSE3
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* ratelimit.c - Do something with rate limit.
|
||||
*
|
||||
|
|
@ -5,8 +6,6 @@
|
|||
*
|
||||
* 2008-05-01 rewrite the function and use a ratelimit_state data struct as
|
||||
* parameter. Now every user can use their own standalone ratelimit_state.
|
||||
*
|
||||
* This file is released under the GPLv2.
|
||||
*/
|
||||
|
||||
#include <linux/ratelimit.h>
|
||||
|
|
|
|||
|
|
@ -1,18 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2016 Facebook
|
||||
* Copyright (C) 2013-2014 Jens Axboe
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License v2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <linux/sched.h>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Generic show_mem() implementation
|
||||
*
|
||||
* Copyright (C) 2008 Johannes Weiner <hannes@saeurebad.de>
|
||||
* All code subject to the GPL version 2.
|
||||
*/
|
||||
|
||||
#include <linux/mm.h>
|
||||
|
|
|
|||
|
|
@ -1,16 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Testsuite for BPF interpreter and BPF JIT compiler
|
||||
*
|
||||
* Copyright (c) 2011-2014 PLUMgrid, http://plumgrid.com
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2 of the GNU General Public
|
||||
* License as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
|
|
|||
|
|
@ -224,30 +224,30 @@ static ssize_t config_show(struct device *dev,
|
|||
|
||||
mutex_lock(&test_fw_mutex);
|
||||
|
||||
len += snprintf(buf, PAGE_SIZE,
|
||||
len += scnprintf(buf, PAGE_SIZE - len,
|
||||
"Custom trigger configuration for: %s\n",
|
||||
dev_name(dev));
|
||||
|
||||
if (test_fw_config->name)
|
||||
len += snprintf(buf+len, PAGE_SIZE,
|
||||
len += scnprintf(buf+len, PAGE_SIZE - len,
|
||||
"name:\t%s\n",
|
||||
test_fw_config->name);
|
||||
else
|
||||
len += snprintf(buf+len, PAGE_SIZE,
|
||||
len += scnprintf(buf+len, PAGE_SIZE - len,
|
||||
"name:\tEMTPY\n");
|
||||
|
||||
len += snprintf(buf+len, PAGE_SIZE,
|
||||
len += scnprintf(buf+len, PAGE_SIZE - len,
|
||||
"num_requests:\t%u\n", test_fw_config->num_requests);
|
||||
|
||||
len += snprintf(buf+len, PAGE_SIZE,
|
||||
len += scnprintf(buf+len, PAGE_SIZE - len,
|
||||
"send_uevent:\t\t%s\n",
|
||||
test_fw_config->send_uevent ?
|
||||
"FW_ACTION_HOTPLUG" :
|
||||
"FW_ACTION_NOHOTPLUG");
|
||||
len += snprintf(buf+len, PAGE_SIZE,
|
||||
len += scnprintf(buf+len, PAGE_SIZE - len,
|
||||
"sync_direct:\t\t%s\n",
|
||||
test_fw_config->sync_direct ? "true" : "false");
|
||||
len += snprintf(buf+len, PAGE_SIZE,
|
||||
len += scnprintf(buf+len, PAGE_SIZE - len,
|
||||
"read_fw_idx:\t%u\n", test_fw_config->read_fw_idx);
|
||||
|
||||
mutex_unlock(&test_fw_mutex);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Kernel module for testing static keys.
|
||||
*
|
||||
|
|
@ -5,15 +6,6 @@
|
|||
*
|
||||
* Authors:
|
||||
* Jason Baron <jbaron@akamai.com>
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
* may be copied, distributed, and modified under those terms.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Kernel module for testing static keys.
|
||||
*
|
||||
|
|
@ -5,15 +6,6 @@
|
|||
*
|
||||
* Authors:
|
||||
* Jason Baron <jbaron@akamai.com>
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
* may be copied, distributed, and modified under those terms.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Kernel module for testing copy_to/from_user infrastructure.
|
||||
*
|
||||
|
|
@ -5,15 +6,6 @@
|
|||
*
|
||||
* Authors:
|
||||
* Kees Cook <keescook@chromium.org>
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
* may be copied, distributed, and modified under those terms.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
|
|
|||
Loading…
Reference in a new issue