Merge branch 'akpm' (patches from Andrew)
Merge yet more updates from Andrew Morton: "This is everything else from -mm for this merge window. 90 patches. Subsystems affected by this patch series: mm (cleanups and slub), alpha, procfs, sysctl, misc, core-kernel, bitmap, lib, compat, checkpatch, epoll, isofs, nilfs2, hpfs, exit, fork, kexec, gcov, panic, delayacct, gdb, resource, selftests, async, initramfs, ipc, drivers/char, and spelling" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (90 commits) mm: fix typos in comments mm: fix typos in comments treewide: remove editor modelines and cruft ipc/sem.c: spelling fix fs: fat: fix spelling typo of values kernel/sys.c: fix typo kernel/up.c: fix typo kernel/user_namespace.c: fix typos kernel/umh.c: fix some spelling mistakes include/linux/pgtable.h: few spelling fixes mm/slab.c: fix spelling mistake "disired" -> "desired" scripts/spelling.txt: add "overflw" scripts/spelling.txt: Add "diabled" typo scripts/spelling.txt: add "overlfow" arm: print alloc free paths for address in registers mm/vmalloc: remove vwrite() mm: remove xlate_dev_kmem_ptr() drivers/char: remove /dev/kmem for good mm: fix some typos and code style problems ipc/sem.c: mundane typo fixes ...
This commit is contained in:
@@ -584,7 +584,7 @@ static int find_affine4_roots(struct bch_control *bch, unsigned int a,
|
||||
k = a_log(bch, a);
|
||||
rows[0] = c;
|
||||
|
||||
/* buid linear system to solve X^4+aX^2+bX+c = 0 */
|
||||
/* build linear system to solve X^4+aX^2+bX+c = 0 */
|
||||
for (i = 0; i < m; i++) {
|
||||
rows[i+1] = bch->a_pow_tab[4*i]^
|
||||
(a ? bch->a_pow_tab[mod_s(bch, k)] : 0)^
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ EXPORT_SYMBOL(crc8_populate_lsb);
|
||||
* @nbytes: number of bytes in data buffer.
|
||||
* @crc: previous returned crc8 value.
|
||||
*/
|
||||
u8 crc8(const u8 table[CRC8_TABLE_SIZE], u8 *pdata, size_t nbytes, u8 crc)
|
||||
u8 crc8(const u8 table[CRC8_TABLE_SIZE], const u8 *pdata, size_t nbytes, u8 crc)
|
||||
{
|
||||
/* loop over the buffer data */
|
||||
while (nbytes-- > 0)
|
||||
|
||||
@@ -391,7 +391,7 @@ static inline int INIT process_bit0(struct writer *wr, struct rc *rc,
|
||||
static inline int INIT process_bit1(struct writer *wr, struct rc *rc,
|
||||
struct cstate *cst, uint16_t *p,
|
||||
int pos_state, uint16_t *prob) {
|
||||
int offset;
|
||||
int offset;
|
||||
uint16_t *prob_len;
|
||||
int num_bits;
|
||||
int len;
|
||||
|
||||
+8
-60
@@ -29,7 +29,7 @@
|
||||
* searching it for one bits.
|
||||
* - The optional "addr2", which is anded with "addr1" if present.
|
||||
*/
|
||||
static unsigned long _find_next_bit(const unsigned long *addr1,
|
||||
unsigned long _find_next_bit(const unsigned long *addr1,
|
||||
const unsigned long *addr2, unsigned long nbits,
|
||||
unsigned long start, unsigned long invert, unsigned long le)
|
||||
{
|
||||
@@ -68,44 +68,14 @@ static unsigned long _find_next_bit(const unsigned long *addr1,
|
||||
|
||||
return min(start + __ffs(tmp), nbits);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef find_next_bit
|
||||
/*
|
||||
* Find the next set bit in a memory region.
|
||||
*/
|
||||
unsigned long find_next_bit(const unsigned long *addr, unsigned long size,
|
||||
unsigned long offset)
|
||||
{
|
||||
return _find_next_bit(addr, NULL, size, offset, 0UL, 0);
|
||||
}
|
||||
EXPORT_SYMBOL(find_next_bit);
|
||||
#endif
|
||||
|
||||
#ifndef find_next_zero_bit
|
||||
unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
|
||||
unsigned long offset)
|
||||
{
|
||||
return _find_next_bit(addr, NULL, size, offset, ~0UL, 0);
|
||||
}
|
||||
EXPORT_SYMBOL(find_next_zero_bit);
|
||||
#endif
|
||||
|
||||
#if !defined(find_next_and_bit)
|
||||
unsigned long find_next_and_bit(const unsigned long *addr1,
|
||||
const unsigned long *addr2, unsigned long size,
|
||||
unsigned long offset)
|
||||
{
|
||||
return _find_next_bit(addr1, addr2, size, offset, 0UL, 0);
|
||||
}
|
||||
EXPORT_SYMBOL(find_next_and_bit);
|
||||
EXPORT_SYMBOL(_find_next_bit);
|
||||
#endif
|
||||
|
||||
#ifndef find_first_bit
|
||||
/*
|
||||
* Find the first set bit in a memory region.
|
||||
*/
|
||||
unsigned long find_first_bit(const unsigned long *addr, unsigned long size)
|
||||
unsigned long _find_first_bit(const unsigned long *addr, unsigned long size)
|
||||
{
|
||||
unsigned long idx;
|
||||
|
||||
@@ -116,14 +86,14 @@ unsigned long find_first_bit(const unsigned long *addr, unsigned long size)
|
||||
|
||||
return size;
|
||||
}
|
||||
EXPORT_SYMBOL(find_first_bit);
|
||||
EXPORT_SYMBOL(_find_first_bit);
|
||||
#endif
|
||||
|
||||
#ifndef find_first_zero_bit
|
||||
/*
|
||||
* Find the first cleared bit in a memory region.
|
||||
*/
|
||||
unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)
|
||||
unsigned long _find_first_zero_bit(const unsigned long *addr, unsigned long size)
|
||||
{
|
||||
unsigned long idx;
|
||||
|
||||
@@ -134,11 +104,11 @@ unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)
|
||||
|
||||
return size;
|
||||
}
|
||||
EXPORT_SYMBOL(find_first_zero_bit);
|
||||
EXPORT_SYMBOL(_find_first_zero_bit);
|
||||
#endif
|
||||
|
||||
#ifndef find_last_bit
|
||||
unsigned long find_last_bit(const unsigned long *addr, unsigned long size)
|
||||
unsigned long _find_last_bit(const unsigned long *addr, unsigned long size)
|
||||
{
|
||||
if (size) {
|
||||
unsigned long val = BITMAP_LAST_WORD_MASK(size);
|
||||
@@ -154,31 +124,9 @@ unsigned long find_last_bit(const unsigned long *addr, unsigned long size)
|
||||
}
|
||||
return size;
|
||||
}
|
||||
EXPORT_SYMBOL(find_last_bit);
|
||||
EXPORT_SYMBOL(_find_last_bit);
|
||||
#endif
|
||||
|
||||
#ifdef __BIG_ENDIAN
|
||||
|
||||
#ifndef find_next_zero_bit_le
|
||||
unsigned long find_next_zero_bit_le(const void *addr, unsigned
|
||||
long size, unsigned long offset)
|
||||
{
|
||||
return _find_next_bit(addr, NULL, size, offset, ~0UL, 1);
|
||||
}
|
||||
EXPORT_SYMBOL(find_next_zero_bit_le);
|
||||
#endif
|
||||
|
||||
#ifndef find_next_bit_le
|
||||
unsigned long find_next_bit_le(const void *addr, unsigned
|
||||
long size, unsigned long offset)
|
||||
{
|
||||
return _find_next_bit(addr, NULL, size, offset, 0UL, 1);
|
||||
}
|
||||
EXPORT_SYMBOL(find_next_bit_le);
|
||||
#endif
|
||||
|
||||
#endif /* __BIG_ENDIAN */
|
||||
|
||||
unsigned long find_next_clump8(unsigned long *clump, const unsigned long *addr,
|
||||
unsigned long size, unsigned long offset)
|
||||
{
|
||||
|
||||
+6
-1
@@ -642,6 +642,7 @@ EXPORT_SYMBOL(gen_pool_set_algo);
|
||||
* @nr: The number of zeroed bits we're looking for
|
||||
* @data: additional data - unused
|
||||
* @pool: pool to find the fit region memory from
|
||||
* @start_addr: not used in this function
|
||||
*/
|
||||
unsigned long gen_pool_first_fit(unsigned long *map, unsigned long size,
|
||||
unsigned long start, unsigned int nr, void *data,
|
||||
@@ -660,6 +661,7 @@ EXPORT_SYMBOL(gen_pool_first_fit);
|
||||
* @nr: The number of zeroed bits we're looking for
|
||||
* @data: data for alignment
|
||||
* @pool: pool to get order from
|
||||
* @start_addr: start addr of alloction chunk
|
||||
*/
|
||||
unsigned long gen_pool_first_fit_align(unsigned long *map, unsigned long size,
|
||||
unsigned long start, unsigned int nr, void *data,
|
||||
@@ -687,6 +689,7 @@ EXPORT_SYMBOL(gen_pool_first_fit_align);
|
||||
* @nr: The number of zeroed bits we're looking for
|
||||
* @data: data for alignment
|
||||
* @pool: pool to get order from
|
||||
* @start_addr: not used in this function
|
||||
*/
|
||||
unsigned long gen_pool_fixed_alloc(unsigned long *map, unsigned long size,
|
||||
unsigned long start, unsigned int nr, void *data,
|
||||
@@ -721,6 +724,7 @@ EXPORT_SYMBOL(gen_pool_fixed_alloc);
|
||||
* @nr: The number of zeroed bits we're looking for
|
||||
* @data: additional data - unused
|
||||
* @pool: pool to find the fit region memory from
|
||||
* @start_addr: not used in this function
|
||||
*/
|
||||
unsigned long gen_pool_first_fit_order_align(unsigned long *map,
|
||||
unsigned long size, unsigned long start,
|
||||
@@ -735,13 +739,14 @@ EXPORT_SYMBOL(gen_pool_first_fit_order_align);
|
||||
|
||||
/**
|
||||
* gen_pool_best_fit - find the best fitting region of memory
|
||||
* macthing the size requirement (no alignment constraint)
|
||||
* matching the size requirement (no alignment constraint)
|
||||
* @map: The address to base the search on
|
||||
* @size: The bitmap size in bits
|
||||
* @start: The bitnumber to start searching at
|
||||
* @nr: The number of zeroed bits we're looking for
|
||||
* @data: additional data - unused
|
||||
* @pool: pool to find the fit region memory from
|
||||
* @start_addr: not used in this function
|
||||
*
|
||||
* Iterate over the bitmap to find the smallest free region
|
||||
* which we can allocate the memory.
|
||||
|
||||
+1
-1
@@ -137,7 +137,7 @@ static void merge_final(void *priv, list_cmp_func_t cmp, struct list_head *head,
|
||||
*
|
||||
*
|
||||
* The merging is controlled by "count", the number of elements in the
|
||||
* pending lists. This is beautiully simple code, but rather subtle.
|
||||
* pending lists. This is beautifully simple code, but rather subtle.
|
||||
*
|
||||
* Each time we increment "count", we set one bit (bit k) and clear
|
||||
* bits k-1 .. 0. Each time this happens (except the very first time
|
||||
|
||||
+38
-23
@@ -98,7 +98,7 @@ static int match_one(char *s, const char *p, substring_t args[])
|
||||
* locations.
|
||||
*
|
||||
* Description: Detects which if any of a set of token strings has been passed
|
||||
* to it. Tokens can include up to MAX_OPT_ARGS instances of basic c-style
|
||||
* to it. Tokens can include up to %MAX_OPT_ARGS instances of basic c-style
|
||||
* format identifiers which will be taken into account when matching the
|
||||
* tokens, and whose locations will be returned in the @args array.
|
||||
*/
|
||||
@@ -120,8 +120,10 @@ EXPORT_SYMBOL(match_token);
|
||||
* @base: base to use when converting string
|
||||
*
|
||||
* Description: Given a &substring_t and a base, attempts to parse the substring
|
||||
* as a number in that base. On success, sets @result to the integer represented
|
||||
* by the string and returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
* as a number in that base.
|
||||
*
|
||||
* Return: On success, sets @result to the integer represented by the
|
||||
* string and returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
*/
|
||||
static int match_number(substring_t *s, int *result, int base)
|
||||
{
|
||||
@@ -153,8 +155,10 @@ static int match_number(substring_t *s, int *result, int base)
|
||||
* @base: base to use when converting string
|
||||
*
|
||||
* Description: Given a &substring_t and a base, attempts to parse the substring
|
||||
* as a number in that base. On success, sets @result to the integer represented
|
||||
* by the string and returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
* as a number in that base.
|
||||
*
|
||||
* Return: On success, sets @result to the integer represented by the
|
||||
* string and returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
*/
|
||||
static int match_u64int(substring_t *s, u64 *result, int base)
|
||||
{
|
||||
@@ -178,9 +182,10 @@ static int match_u64int(substring_t *s, u64 *result, int base)
|
||||
* @s: substring_t to be scanned
|
||||
* @result: resulting integer on success
|
||||
*
|
||||
* Description: Attempts to parse the &substring_t @s as a decimal integer. On
|
||||
* success, sets @result to the integer represented by the string and returns 0.
|
||||
* Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
* Description: Attempts to parse the &substring_t @s as a decimal integer.
|
||||
*
|
||||
* Return: On success, sets @result to the integer represented by the string
|
||||
* and returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
*/
|
||||
int match_int(substring_t *s, int *result)
|
||||
{
|
||||
@@ -188,14 +193,15 @@ int match_int(substring_t *s, int *result)
|
||||
}
|
||||
EXPORT_SYMBOL(match_int);
|
||||
|
||||
/*
|
||||
/**
|
||||
* match_uint - scan a decimal representation of an integer from a substring_t
|
||||
* @s: substring_t to be scanned
|
||||
* @result: resulting integer on success
|
||||
*
|
||||
* Description: Attempts to parse the &substring_t @s as a decimal integer. On
|
||||
* success, sets @result to the integer represented by the string and returns 0.
|
||||
* Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
* Description: Attempts to parse the &substring_t @s as a decimal integer.
|
||||
*
|
||||
* Return: On success, sets @result to the integer represented by the string
|
||||
* and returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
*/
|
||||
int match_uint(substring_t *s, unsigned int *result)
|
||||
{
|
||||
@@ -217,9 +223,10 @@ EXPORT_SYMBOL(match_uint);
|
||||
* @result: resulting unsigned long long on success
|
||||
*
|
||||
* Description: Attempts to parse the &substring_t @s as a long decimal
|
||||
* integer. On success, sets @result to the integer represented by the
|
||||
* string and returns 0.
|
||||
* Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
* integer.
|
||||
*
|
||||
* Return: On success, sets @result to the integer represented by the string
|
||||
* and returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
*/
|
||||
int match_u64(substring_t *s, u64 *result)
|
||||
{
|
||||
@@ -232,9 +239,10 @@ EXPORT_SYMBOL(match_u64);
|
||||
* @s: substring_t to be scanned
|
||||
* @result: resulting integer on success
|
||||
*
|
||||
* Description: Attempts to parse the &substring_t @s as an octal integer. On
|
||||
* success, sets @result to the integer represented by the string and returns
|
||||
* 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
* Description: Attempts to parse the &substring_t @s as an octal integer.
|
||||
*
|
||||
* Return: On success, sets @result to the integer represented by the string
|
||||
* and returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
*/
|
||||
int match_octal(substring_t *s, int *result)
|
||||
{
|
||||
@@ -248,8 +256,9 @@ EXPORT_SYMBOL(match_octal);
|
||||
* @result: resulting integer on success
|
||||
*
|
||||
* Description: Attempts to parse the &substring_t @s as a hexadecimal integer.
|
||||
* On success, sets @result to the integer represented by the string and
|
||||
* returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
*
|
||||
* Return: On success, sets @result to the integer represented by the string
|
||||
* and returns 0. Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
*/
|
||||
int match_hex(substring_t *s, int *result)
|
||||
{
|
||||
@@ -263,10 +272,11 @@ EXPORT_SYMBOL(match_hex);
|
||||
* @str: the string to be parsed
|
||||
*
|
||||
* Description: Parse the string @str to check if matches wildcard
|
||||
* pattern @pattern. The pattern may contain two type wildcardes:
|
||||
* pattern @pattern. The pattern may contain two types of wildcards:
|
||||
* '*' - matches zero or more characters
|
||||
* '?' - matches one character
|
||||
* If it's matched, return true, else return false.
|
||||
*
|
||||
* Return: If the @str matches the @pattern, return true, else return false.
|
||||
*/
|
||||
bool match_wildcard(const char *pattern, const char *str)
|
||||
{
|
||||
@@ -316,7 +326,9 @@ EXPORT_SYMBOL(match_wildcard);
|
||||
*
|
||||
* Description: Copy the characters in &substring_t @src to the
|
||||
* c-style string @dest. Copy no more than @size - 1 characters, plus
|
||||
* the terminating NUL. Return length of @src.
|
||||
* the terminating NUL.
|
||||
*
|
||||
* Return: length of @src.
|
||||
*/
|
||||
size_t match_strlcpy(char *dest, const substring_t *src, size_t size)
|
||||
{
|
||||
@@ -338,6 +350,9 @@ EXPORT_SYMBOL(match_strlcpy);
|
||||
* Description: Allocates and returns a string filled with the contents of
|
||||
* the &substring_t @s. The caller is responsible for freeing the returned
|
||||
* string with kfree().
|
||||
*
|
||||
* Return: the address of the newly allocated NUL-terminated string or
|
||||
* %NULL on error.
|
||||
*/
|
||||
char *match_strdup(const substring_t *s)
|
||||
{
|
||||
|
||||
@@ -72,7 +72,7 @@ void percpu_counter_set(struct percpu_counter *fbc, s64 amount)
|
||||
}
|
||||
EXPORT_SYMBOL(percpu_counter_set);
|
||||
|
||||
/**
|
||||
/*
|
||||
* This function is both preempt and irq safe. The former is due to explicit
|
||||
* preemption disable. The latter is guaranteed by the fact that the slow path
|
||||
* is explicitly protected by an irq-safe spinlock whereas the fast patch uses
|
||||
|
||||
+3
-3
@@ -71,7 +71,7 @@ static void *stack_slabs[STACK_ALLOC_MAX_SLABS];
|
||||
static int depot_index;
|
||||
static int next_slab_inited;
|
||||
static size_t depot_offset;
|
||||
static DEFINE_SPINLOCK(depot_lock);
|
||||
static DEFINE_RAW_SPINLOCK(depot_lock);
|
||||
|
||||
static bool init_stack_slab(void **prealloc)
|
||||
{
|
||||
@@ -305,7 +305,7 @@ depot_stack_handle_t stack_depot_save(unsigned long *entries,
|
||||
prealloc = page_address(page);
|
||||
}
|
||||
|
||||
spin_lock_irqsave(&depot_lock, flags);
|
||||
raw_spin_lock_irqsave(&depot_lock, flags);
|
||||
|
||||
found = find_stack(*bucket, entries, nr_entries, hash);
|
||||
if (!found) {
|
||||
@@ -329,7 +329,7 @@ depot_stack_handle_t stack_depot_save(unsigned long *entries,
|
||||
WARN_ON(!init_stack_slab(&prealloc));
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&depot_lock, flags);
|
||||
raw_spin_unlock_irqrestore(&depot_lock, flags);
|
||||
exit:
|
||||
if (prealloc) {
|
||||
/* Nobody used this memory, ok to free it. */
|
||||
|
||||
Reference in New Issue
Block a user