mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 16:48:38 -04:00
Merge 3.7-rc3 into char-misc-next
This brings in the various 3.7-rc3 char fixes into char-misc-next. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
@@ -205,6 +205,8 @@
|
||||
{0x1002, 0x6788, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x678A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6790, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6791, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6792, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6798, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6799, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x679A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
@@ -217,6 +219,7 @@
|
||||
{0x1002, 0x6808, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6809, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6810, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6811, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6816, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6817, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6818, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
|
||||
@@ -61,7 +61,7 @@ int __dynamic_netdev_dbg(struct _ddebug *descriptor,
|
||||
const char *fmt, ...);
|
||||
|
||||
#define DEFINE_DYNAMIC_DEBUG_METADATA(name, fmt) \
|
||||
static struct _ddebug __used __aligned(8) \
|
||||
static struct _ddebug __aligned(8) \
|
||||
__attribute__((section("__verbose"))) name = { \
|
||||
.modname = KBUILD_MODNAME, \
|
||||
.function = __func__, \
|
||||
|
||||
@@ -68,7 +68,7 @@ enum extcon_cable_name {
|
||||
EXTCON_VIDEO_OUT,
|
||||
EXTCON_MECHANICAL,
|
||||
};
|
||||
extern const char *extcon_cable_name[];
|
||||
extern const char extcon_cable_name[][CABLE_NAME_MAX + 1];
|
||||
|
||||
struct extcon_cable;
|
||||
|
||||
|
||||
@@ -618,4 +618,20 @@ static inline struct dentry *iio_get_debugfs_dentry(struct iio_dev *indio_dev)
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* IIO_DEGREE_TO_RAD() - Convert degree to rad
|
||||
* @deg: A value in degree
|
||||
*
|
||||
* Returns the given value converted from degree to rad
|
||||
*/
|
||||
#define IIO_DEGREE_TO_RAD(deg) (((deg) * 314159ULL + 9000000ULL) / 18000000ULL)
|
||||
|
||||
/**
|
||||
* IIO_G_TO_M_S_2() - Convert g to meter / second**2
|
||||
* @g: A value in g
|
||||
*
|
||||
* Returns the given value converted from g to meter / second**2
|
||||
*/
|
||||
#define IIO_G_TO_M_S_2(g) ((g) * 980665ULL / 100000ULL)
|
||||
|
||||
#endif /* _INDUSTRIAL_IO_H_ */
|
||||
|
||||
@@ -57,6 +57,7 @@ int memblock_add(phys_addr_t base, phys_addr_t size);
|
||||
int memblock_remove(phys_addr_t base, phys_addr_t size);
|
||||
int memblock_free(phys_addr_t base, phys_addr_t size);
|
||||
int memblock_reserve(phys_addr_t base, phys_addr_t size);
|
||||
void memblock_trim_memory(phys_addr_t align);
|
||||
|
||||
#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
|
||||
void __next_mem_pfn_range(int *idx, int nid, unsigned long *out_start_pfn,
|
||||
|
||||
@@ -30,7 +30,20 @@
|
||||
#ifndef __LINUX_MFD_MAX77693_H
|
||||
#define __LINUX_MFD_MAX77693_H
|
||||
|
||||
struct max77693_reg_data {
|
||||
u8 addr;
|
||||
u8 data;
|
||||
};
|
||||
|
||||
struct max77693_muic_platform_data {
|
||||
struct max77693_reg_data *init_data;
|
||||
int num_init_data;
|
||||
};
|
||||
|
||||
struct max77693_platform_data {
|
||||
int wakeup;
|
||||
|
||||
/* muic data */
|
||||
struct max77693_muic_platform_data *muic_data;
|
||||
};
|
||||
#endif /* __LINUX_MFD_MAX77693_H */
|
||||
|
||||
@@ -12,34 +12,27 @@ struct percpu_rw_semaphore {
|
||||
struct mutex mtx;
|
||||
};
|
||||
|
||||
#define light_mb() barrier()
|
||||
#define heavy_mb() synchronize_sched()
|
||||
|
||||
static inline void percpu_down_read(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
rcu_read_lock();
|
||||
rcu_read_lock_sched();
|
||||
if (unlikely(p->locked)) {
|
||||
rcu_read_unlock();
|
||||
rcu_read_unlock_sched();
|
||||
mutex_lock(&p->mtx);
|
||||
this_cpu_inc(*p->counters);
|
||||
mutex_unlock(&p->mtx);
|
||||
return;
|
||||
}
|
||||
this_cpu_inc(*p->counters);
|
||||
rcu_read_unlock();
|
||||
rcu_read_unlock_sched();
|
||||
light_mb(); /* A, between read of p->locked and read of data, paired with D */
|
||||
}
|
||||
|
||||
static inline void percpu_up_read(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
/*
|
||||
* On X86, write operation in this_cpu_dec serves as a memory unlock
|
||||
* barrier (i.e. memory accesses may be moved before the write, but
|
||||
* no memory accesses are moved past the write).
|
||||
* On other architectures this may not be the case, so we need smp_mb()
|
||||
* there.
|
||||
*/
|
||||
#if defined(CONFIG_X86) && (!defined(CONFIG_X86_PPRO_FENCE) && !defined(CONFIG_X86_OOSTORE))
|
||||
barrier();
|
||||
#else
|
||||
smp_mb();
|
||||
#endif
|
||||
light_mb(); /* B, between read of the data and write to p->counter, paired with C */
|
||||
this_cpu_dec(*p->counters);
|
||||
}
|
||||
|
||||
@@ -58,14 +51,15 @@ static inline void percpu_down_write(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
mutex_lock(&p->mtx);
|
||||
p->locked = true;
|
||||
synchronize_rcu();
|
||||
synchronize_sched(); /* make sure that all readers exit the rcu_read_lock_sched region */
|
||||
while (__percpu_count(p->counters))
|
||||
msleep(1);
|
||||
smp_rmb(); /* paired with smp_mb() in percpu_sem_up_read() */
|
||||
heavy_mb(); /* C, between read of p->counter and write to data, paired with B */
|
||||
}
|
||||
|
||||
static inline void percpu_up_write(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
heavy_mb(); /* D, between write to data and write to p->locked, paired with A */
|
||||
p->locked = false;
|
||||
mutex_unlock(&p->mtx);
|
||||
}
|
||||
|
||||
@@ -803,12 +803,16 @@ static inline void perf_event_task_tick(void) { }
|
||||
do { \
|
||||
static struct notifier_block fn##_nb __cpuinitdata = \
|
||||
{ .notifier_call = fn, .priority = CPU_PRI_PERF }; \
|
||||
unsigned long cpu = smp_processor_id(); \
|
||||
unsigned long flags; \
|
||||
fn(&fn##_nb, (unsigned long)CPU_UP_PREPARE, \
|
||||
(void *)(unsigned long)smp_processor_id()); \
|
||||
(void *)(unsigned long)cpu); \
|
||||
local_irq_save(flags); \
|
||||
fn(&fn##_nb, (unsigned long)CPU_STARTING, \
|
||||
(void *)(unsigned long)smp_processor_id()); \
|
||||
(void *)(unsigned long)cpu); \
|
||||
local_irq_restore(flags); \
|
||||
fn(&fn##_nb, (unsigned long)CPU_ONLINE, \
|
||||
(void *)(unsigned long)smp_processor_id()); \
|
||||
(void *)(unsigned long)cpu); \
|
||||
register_cpu_notifier(&fn##_nb); \
|
||||
} while (0)
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#ifndef _LINUX_RBTREE_AUGMENTED_H
|
||||
#define _LINUX_RBTREE_AUGMENTED_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/rbtree.h>
|
||||
|
||||
/*
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
*
|
||||
* Copyright (C) 2009-2010 Nokia Corporation
|
||||
*
|
||||
* Contact: Aaro Koskinen <aaro.koskinen@nokia.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; either version 2 of the License, or
|
||||
|
||||
@@ -191,7 +191,8 @@ struct tcp_sock {
|
||||
u8 do_early_retrans:1,/* Enable RFC5827 early-retransmit */
|
||||
early_retrans_delayed:1, /* Delayed ER timer installed */
|
||||
syn_data:1, /* SYN includes data */
|
||||
syn_fastopen:1; /* SYN includes Fast Open option */
|
||||
syn_fastopen:1, /* SYN includes Fast Open option */
|
||||
syn_data_acked:1;/* data in SYN is acked by SYN-ACK */
|
||||
|
||||
/* RTT measurement */
|
||||
u32 srtt; /* smoothed round trip time << 3 */
|
||||
|
||||
@@ -35,16 +35,6 @@ struct inode;
|
||||
# include <asm/uprobes.h>
|
||||
#endif
|
||||
|
||||
/* flags that denote/change uprobes behaviour */
|
||||
|
||||
/* Have a copy of original instruction */
|
||||
#define UPROBE_COPY_INSN 0x1
|
||||
|
||||
/* Dont run handlers when first register/ last unregister in progress*/
|
||||
#define UPROBE_RUN_HANDLER 0x2
|
||||
/* Can skip singlestep */
|
||||
#define UPROBE_SKIP_SSTEP 0x4
|
||||
|
||||
struct uprobe_consumer {
|
||||
int (*handler)(struct uprobe_consumer *self, struct pt_regs *regs);
|
||||
/*
|
||||
@@ -59,7 +49,6 @@ struct uprobe_consumer {
|
||||
#ifdef CONFIG_UPROBES
|
||||
enum uprobe_task_state {
|
||||
UTASK_RUNNING,
|
||||
UTASK_BP_HIT,
|
||||
UTASK_SSTEP,
|
||||
UTASK_SSTEP_ACK,
|
||||
UTASK_SSTEP_TRAPPED,
|
||||
|
||||
@@ -1218,6 +1218,7 @@ struct cfg80211_deauth_request {
|
||||
const u8 *ie;
|
||||
size_t ie_len;
|
||||
u16 reason_code;
|
||||
bool local_state_change;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -130,6 +130,7 @@ enum {
|
||||
#define TCPI_OPT_WSCALE 4
|
||||
#define TCPI_OPT_ECN 8 /* ECN was negociated at TCP session init */
|
||||
#define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */
|
||||
#define TCPI_OPT_SYN_DATA 32 /* SYN-ACK acked data in SYN sent or rcvd */
|
||||
|
||||
enum tcp_ca_state {
|
||||
TCP_CA_Open = 0,
|
||||
|
||||
@@ -170,7 +170,7 @@ gnttab_set_unmap_op(struct gnttab_unmap_grant_ref *unmap, phys_addr_t addr,
|
||||
unmap->dev_bus_addr = 0;
|
||||
}
|
||||
|
||||
int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes,
|
||||
int arch_gnttab_map_shared(xen_pfn_t *frames, unsigned long nr_gframes,
|
||||
unsigned long max_nr_gframes,
|
||||
void **__shared);
|
||||
int arch_gnttab_map_status(uint64_t *frames, unsigned long nr_gframes,
|
||||
|
||||
@@ -310,7 +310,7 @@ struct gnttab_setup_table {
|
||||
uint32_t nr_frames;
|
||||
/* OUT parameters. */
|
||||
int16_t status; /* GNTST_* */
|
||||
GUEST_HANDLE(ulong) frame_list;
|
||||
GUEST_HANDLE(xen_pfn_t) frame_list;
|
||||
};
|
||||
DEFINE_GUEST_HANDLE_STRUCT(gnttab_setup_table);
|
||||
|
||||
|
||||
@@ -179,28 +179,8 @@ struct xen_add_to_physmap {
|
||||
};
|
||||
DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
|
||||
|
||||
/*
|
||||
* Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
|
||||
* code on failure. This call only works for auto-translated guests.
|
||||
*/
|
||||
#define XENMEM_translate_gpfn_list 8
|
||||
struct xen_translate_gpfn_list {
|
||||
/* Which domain to translate for? */
|
||||
domid_t domid;
|
||||
|
||||
/* Length of list. */
|
||||
xen_ulong_t nr_gpfns;
|
||||
|
||||
/* List of GPFNs to translate. */
|
||||
GUEST_HANDLE(ulong) gpfn_list;
|
||||
|
||||
/*
|
||||
* Output list to contain MFN translations. May be the same as the input
|
||||
* list (in which case each input GPFN is overwritten with the output MFN).
|
||||
*/
|
||||
GUEST_HANDLE(ulong) mfn_list;
|
||||
};
|
||||
DEFINE_GUEST_HANDLE_STRUCT(xen_translate_gpfn_list);
|
||||
/*** REMOVED ***/
|
||||
/*#define XENMEM_translate_gpfn_list 8*/
|
||||
|
||||
/*
|
||||
* Returns the pseudo-physical memory map as it was when the domain
|
||||
|
||||
Reference in New Issue
Block a user