mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
Merge 5.2-rc6 into char-misc-next
We need the char-misc fixes in here as well. Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
commit
8083f3d788
5657 changed files with 11916 additions and 28338 deletions
|
|
@ -1,9 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* lib/bitmap.c
|
||||
* Helper functions for bitmap.h.
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
#include <linux/export.h>
|
||||
#include <linux/thread_info.h>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* lib/clz_ctz.c
|
||||
*
|
||||
* Copyright (C) 2013 Chanho Min <chanho.min@lge.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.
|
||||
* The functions in this file aren't called directly, but are required by
|
||||
* GCC builtins such as __builtin_ctz, and therefore they can't be removed
|
||||
* despite appearing unreferenced in kernel source.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* linux/lib/cmdline.c
|
||||
* Helper functions generally used for parsing kernel command line
|
||||
|
|
@ -5,11 +6,7 @@
|
|||
*
|
||||
* Code and copyrights come from init/main.c and arch/i386/kernel/setup.c.
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*
|
||||
* GNU Indent formatting options for this file: -kr -i8 -npsl -pcs
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* cpu_rmap.c: CPU affinity reverse-map support
|
||||
* Copyright 2011 Solarflare Communications Inc.
|
||||
*
|
||||
* 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, incorporated herein by reference.
|
||||
*/
|
||||
|
||||
#include <linux/cpu_rmap.h>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* linux/lib/crc-ccitt.c
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* crc-itu-t.c
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* T10 Data Integrity Field CRC16 calculation
|
||||
*
|
||||
* Copyright (c) 2007 Oracle Corporation. All rights reserved.
|
||||
* Written by Martin K. Petersen <martin.petersen@oracle.com>
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* crc16.c
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* crc4.c - simple crc-4 calculations.
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License, Version
|
||||
* 2. See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/crc4.h>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* crc7.c
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Wrapper for decompressing LZ4-compressed kernel, initramfs, and initrd
|
||||
*
|
||||
* Copyright (C) 2013, LG Electronics, Kyungsik Lee <kyungsik.lee@lge.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.
|
||||
*/
|
||||
|
||||
#ifdef STATIC
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Basic general purpose allocator for managing special purpose
|
||||
* memory, for example, memory that is not managed by the regular
|
||||
|
|
@ -23,9 +24,6 @@
|
|||
* CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG.
|
||||
*
|
||||
* Copyright 2005 (C) Jes Sorensen <jes@trained-monkey.org>
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/slab.h>
|
||||
|
|
@ -168,20 +166,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 +194,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 +203,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 +260,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 +284,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 +314,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 +357,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 +374,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 +387,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 +396,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
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* lib/hexdump.c
|
||||
*
|
||||
* 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. See README and COPYING for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
|
|
|||
|
|
@ -1,18 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright 2006 PathScale, Inc. All Rights Reserved.
|
||||
*
|
||||
* This file 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.
|
||||
*
|
||||
* 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <linux/export.h>
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* DDR addressing details and AC timing parameters from JEDEC specs
|
||||
*
|
||||
* Copyright (C) 2012 Texas Instruments, Inc.
|
||||
*
|
||||
* Aneesh V <aneesh@ti.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.
|
||||
*/
|
||||
|
||||
#include <memory/jedec_ddr.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* klist.c - Routines for manipulating klists.
|
||||
*
|
||||
* Copyright (C) 2005 Patrick Mochel
|
||||
*
|
||||
* This file is released under the GPL v2.
|
||||
*
|
||||
* This klist interface provides a couple of structures that wrap around
|
||||
* struct list_head to provide explicit list "head" (struct klist) and list
|
||||
* "node" (struct klist_node) objects. For struct klist, a spinlock is
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* lib/parser.c - simple parser for mount, etc. options.
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/ctype.h>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* linux/lib/raid6/neon.c - RAID6 syndrome calculation using ARM NEON intrinsics
|
||||
*
|
||||
* Copyright (C) 2013 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 version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/raid/pq.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Resizable, Scalable, Concurrent Hash Table
|
||||
*
|
||||
|
|
@ -8,10 +9,6 @@
|
|||
* Code partially derived from nft_hash
|
||||
* Rewritten with rehash code from br_multicast plus single list
|
||||
* pointer as suggested by Josh Triplett
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/atomic.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2007 Jens Axboe <jens.axboe@oracle.com>
|
||||
*
|
||||
* Scatterlist handling helpers.
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
#include <linux/export.h>
|
||||
#include <linux/slab.h>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2015 Robert Jarzmik <robert.jarzmik@free.fr>
|
||||
*
|
||||
* Scatterlist splitting helpers.
|
||||
*
|
||||
* This source code is licensed under the GNU General Public License,
|
||||
* Version 2. See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/scatterlist.h>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2014 Samsung Electronics Co., Ltd.
|
||||
* Author: Andrey Ryabinin <a.ryabinin@samsung.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.
|
||||
*
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) "kasan test: %s " fmt, __func__
|
||||
|
|
|
|||
|
|
@ -1,12 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Resizable, Scalable, Concurrent Hash Table
|
||||
*
|
||||
* Copyright (c) 2014-2015 Thomas Graf <tgraf@suug.ch>
|
||||
* Copyright (c) 2008-2014 Patrick McHardy <kaber@trash.net>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**************************************************************************
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
/* Exfiltration buffer. */
|
||||
#define MAX_VAR_SIZE 128
|
||||
static char check_buf[MAX_VAR_SIZE];
|
||||
static u8 check_buf[MAX_VAR_SIZE];
|
||||
|
||||
/* Character array to trigger stack protector in all functions. */
|
||||
#define VAR_BUFFER 32
|
||||
|
|
@ -106,9 +106,18 @@ static noinline __init int test_ ## name (void) \
|
|||
\
|
||||
/* Fill clone type with zero for per-field init. */ \
|
||||
memset(&zero, 0x00, sizeof(zero)); \
|
||||
/* Clear entire check buffer for 0xFF overlap test. */ \
|
||||
memset(check_buf, 0x00, sizeof(check_buf)); \
|
||||
/* Fill stack with 0xFF. */ \
|
||||
ignored = leaf_ ##name((unsigned long)&ignored, 1, \
|
||||
FETCH_ARG_ ## which(zero)); \
|
||||
/* Verify all bytes overwritten with 0xFF. */ \
|
||||
for (sum = 0, i = 0; i < target_size; i++) \
|
||||
sum += (check_buf[i] != 0xFF); \
|
||||
if (sum) { \
|
||||
pr_err(#name ": leaf fill was not 0xFF!?\n"); \
|
||||
return 1; \
|
||||
} \
|
||||
/* Clear entire check buffer for later bit tests. */ \
|
||||
memset(check_buf, 0x00, sizeof(check_buf)); \
|
||||
/* Extract stack-defined variable contents. */ \
|
||||
|
|
@ -126,9 +135,9 @@ static noinline __init int test_ ## name (void) \
|
|||
return 1; \
|
||||
} \
|
||||
\
|
||||
/* Look for any set bits in the check region. */ \
|
||||
for (i = 0; i < sizeof(check_buf); i++) \
|
||||
sum += (check_buf[i] != 0); \
|
||||
/* Look for any bytes still 0xFF in check region. */ \
|
||||
for (sum = 0, i = 0; i < target_size; i++) \
|
||||
sum += (check_buf[i] == 0xFF); \
|
||||
\
|
||||
if (sum == 0) \
|
||||
pr_info(#name " ok\n"); \
|
||||
|
|
@ -162,13 +171,13 @@ static noinline __init int leaf_ ## name(unsigned long sp, \
|
|||
* Keep this buffer around to make sure we've got a \
|
||||
* stack frame of SOME kind... \
|
||||
*/ \
|
||||
memset(buf, (char)(sp && 0xff), sizeof(buf)); \
|
||||
memset(buf, (char)(sp & 0xff), sizeof(buf)); \
|
||||
/* Fill variable with 0xFF. */ \
|
||||
if (fill) { \
|
||||
fill_start = &var; \
|
||||
fill_size = sizeof(var); \
|
||||
memset(fill_start, \
|
||||
(char)((sp && 0xff) | forced_mask), \
|
||||
(char)((sp & 0xff) | forced_mask), \
|
||||
fill_size); \
|
||||
} \
|
||||
\
|
||||
|
|
|
|||
|
|
@ -1,13 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* UBSAN error reporting functions
|
||||
*
|
||||
* Copyright (c) 2014 Samsung Electronics Co., Ltd.
|
||||
* Author: Andrey Ryabinin <ryabinin.a.a@gmail.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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/bitops.h>
|
||||
|
|
|
|||
Loading…
Reference in a new issue