Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
e3e25fc
Apply Linux patch 3.10.33 - 3.10.34
Stane1983 Aug 3, 2015
0e283d0
Apply Linux patch 3.10.34 - 3.10.35
Stane1983 Aug 3, 2015
b1295cf
Apply Linux patch 3.10.35 - 3.10.36
Stane1983 Aug 3, 2015
c3192d0
Apply Linux patch 3.10.36 - 3.10.37
Stane1983 Aug 3, 2015
1b9ac66
Apply Linux patch 3.10.37 - 3.10.38
Stane1983 Aug 3, 2015
cd6536c
Apply Linux patch 3.10.38 - 3.10.39
Stane1983 Aug 3, 2015
5332864
Apply Linux patch 3.10.39 - 3.10.40
Stane1983 Aug 3, 2015
4180f3b
Apply Linux patch 3.10.40 - 3.10.41
Stane1983 Aug 3, 2015
69c9072
Apply Linux patch 3.10.41 - 3.10.42
Stane1983 Aug 3, 2015
c024ed0
Apply Linux patch 3.10.42 - 3.10.43
Stane1983 Aug 3, 2015
59b8f92
Apply Linux patch 3.10.43 - 3.10.44
Stane1983 Aug 3, 2015
b3f7edc
Apply Linux patch 3.10.44 - 3.10.45
Stane1983 Aug 3, 2015
96129de
Apply Linux patch 3.10.45 - 3.10.46
Stane1983 Aug 3, 2015
c42504f
Apply Linux patch 3.10.46 - 3.10.47
Stane1983 Aug 3, 2015
5ba824f
Apply Linux patch 3.10.47 - 3.10.48
Stane1983 Aug 3, 2015
6f35a47
Apply Linux patch 3.10.48 - 3.10.49
Stane1983 Aug 3, 2015
9977c93
Apply Linux patch 3.10.49 - 3.10.50
Stane1983 Aug 3, 2015
25f795f
Apply Linux patch 3.10.50 - 3.10.51
Stane1983 Aug 3, 2015
89fffc4
Apply Linux patch 3.10.51 - 3.10.52
Stane1983 Aug 3, 2015
e0b9329
Apply Linux patch 3.10.52 - 3.10.53
Stane1983 Aug 3, 2015
f70dcab
Apply Linux patch 3.10.53 - 3.10.54
Stane1983 Aug 3, 2015
989ed95
Apply Linux patch 3.10.54 - 3.10.55
Stane1983 Aug 3, 2015
2e1a81f
Apply Linux patch 3.10.55 - 3.10.56
Stane1983 Aug 3, 2015
21bd39e
Apply Linux patch 3.10.56 - 3.10.57
Stane1983 Aug 3, 2015
5e81b98
Apply Linux patch 3.10.57 - 3.10.58
Stane1983 Aug 3, 2015
903b15e
Apply Linux patch 3.10.58 - 3.10.59
Stane1983 Aug 3, 2015
f9f2bd8
Apply Linux patch 3.10.59 - 3.10.60
Stane1983 Aug 3, 2015
2afd64b
Apply Linux patch 3.10.60 - 3.10.61
Stane1983 Aug 3, 2015
058c3b7
Apply Linux patch 3.10.61 - 3.10.62
Stane1983 Aug 3, 2015
a4e1311
Apply Linux patch 3.10.62 - 3.10.63
Stane1983 Aug 3, 2015
051666a
Fix compile: kernel/power/main.c - we don't have valid_state function
Stane1983 Aug 3, 2015
8c214f2
Apply Linux patch 3.10.63 - 3.10.64
Stane1983 Aug 3, 2015
3400e38
Apply Linux patch 3.10.64 - 3.10.65
Stane1983 Aug 3, 2015
8e2dd13
Apply Linux patch 3.10.65 - 3.10.66
Stane1983 Aug 3, 2015
d31a314
Apply Linux patch 3.10.66 - 3.10.67
Stane1983 Aug 3, 2015
fdd4c3a
Apply Linux patch 3.10.67 - 3.10.68
Stane1983 Aug 3, 2015
ee98242
Apply Linux patch 3.10.68 - 3.10.69
Stane1983 Aug 3, 2015
18a0dbb
Apply Linux patch 3.10.69 - 3.10.70
Stane1983 Aug 3, 2015
931fde7
Apply Linux patch 3.10.70 - 3.10.71
Stane1983 Aug 3, 2015
8c09d4b
Apply Linux patch 3.10.71 - 3.10.72
Stane1983 Aug 3, 2015
d90587b
Apply Linux patch 3.10.72 - 3.10.73
Stane1983 Aug 3, 2015
78638e8
Apply Linux patch 3.10.73 - 3.10.74
Stane1983 Aug 3, 2015
c6cdeaf
Apply Linux patch 3.10.74 - 3.10.75
Stane1983 Aug 3, 2015
3869818
Apply Linux patch 3.10.75 - 3.10.76
Stane1983 Aug 3, 2015
6c63c39
Apply Linux patch 3.10.76 - 3.10.77
Stane1983 Aug 3, 2015
bdbcd23
Apply Linux patch 3.10.77 - 3.10.78
Stane1983 Aug 3, 2015
ba13873
Apply Linux patch 3.10.78 - 3.10.79
Stane1983 Aug 3, 2015
efe3060
amlogic-pinctrl: Fix driver for 3.10.79 kernel
Stane1983 Aug 3, 2015
2be1d25
Apply Linux patch 3.10.79 - 3.10.80
Stane1983 Aug 3, 2015
3c7c6cc
gpio: Fix compile
Stane1983 Aug 3, 2015
7884067
Apply Linux patch 3.10.80 - 3.10.81
Stane1983 Aug 3, 2015
3546613
Apply Linux patch 3.10.81 - 3.10.82
Stane1983 Aug 3, 2015
2597172
Apply Linux patch 3.10.82 - 3.10.83
Stane1983 Aug 3, 2015
fd5e4f2
Apply Linux patch 3.10.83 - 3.10.84
Stane1983 Aug 3, 2015
7fd89bc
FIX: arm: define PHYS_OFFSET only if it's not already defined
Stane1983 Aug 3, 2015
cf612d7
Fix pinctrl driver
Stane1983 Aug 3, 2015
871da13
Apply Linux patch 3.10.84 - 3.10.85
Stane1983 Aug 3, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Apply Linux patch 3.10.35 - 3.10.36
  • Loading branch information
Stane1983 committed Aug 3, 2015
commit b1295cf95c9ac4b55d1e315749db4008309175ff
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
VERSION = 3
PATCHLEVEL = 10
SUBLEVEL = 35
SUBLEVEL = 36
EXTRAVERSION =
NAME = TOSSUG Baby Fish

Expand Down
3 changes: 2 additions & 1 deletion arch/x86/include/asm/topology.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,10 @@ static inline void setup_node_to_cpumask_map(void) { }

extern const struct cpumask *cpu_coregroup_mask(int cpu);

#ifdef ENABLE_TOPO_DEFINES
#define topology_physical_package_id(cpu) (cpu_data(cpu).phys_proc_id)
#define topology_core_id(cpu) (cpu_data(cpu).cpu_core_id)

#ifdef ENABLE_TOPO_DEFINES
#define topology_core_cpumask(cpu) (per_cpu(cpu_core_map, cpu))
#define topology_thread_cpumask(cpu) (per_cpu(cpu_sibling_map, cpu))

Expand Down
2 changes: 1 addition & 1 deletion drivers/block/aoe/aoecmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -899,7 +899,7 @@ bio_pageinc(struct bio *bio)
* but this has never been seen here.
*/
if (unlikely(PageCompound(page)))
if (compound_trans_head(page) != page) {
if (compound_head(page) != page) {
pr_crit("page tail used for block I/O\n");
BUG();
}
Expand Down
1 change: 0 additions & 1 deletion drivers/input/mouse/cypress_ps2.c
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,6 @@ static int cypress_set_input_params(struct input_dev *input,
__clear_bit(REL_X, input->relbit);
__clear_bit(REL_Y, input->relbit);

__set_bit(INPUT_PROP_BUTTONPAD, input->propbit);
__set_bit(EV_KEY, input->evbit);
__set_bit(BTN_LEFT, input->keybit);
__set_bit(BTN_RIGHT, input->keybit);
Expand Down
55 changes: 55 additions & 0 deletions drivers/input/mouse/synaptics.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,11 +265,22 @@ static int synaptics_identify(struct psmouse *psmouse)
* Read touchpad resolution and maximum reported coordinates
* Resolution is left zero if touchpad does not support the query
*/

static const int *quirk_min_max;

static int synaptics_resolution(struct psmouse *psmouse)
{
struct synaptics_data *priv = psmouse->private;
unsigned char resp[3];

if (quirk_min_max) {
priv->x_min = quirk_min_max[0];
priv->x_max = quirk_min_max[1];
priv->y_min = quirk_min_max[2];
priv->y_max = quirk_min_max[3];
return 0;
}

if (SYN_ID_MAJOR(priv->identity) < 4)
return 0;

Expand Down Expand Up @@ -1485,10 +1496,54 @@ static const struct dmi_system_id __initconst olpc_dmi_table[] = {
{ }
};

static const struct dmi_system_id min_max_dmi_table[] __initconst = {
#if defined(CONFIG_DMI)
{
/* Lenovo ThinkPad Helix */
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Helix"),
},
.driver_data = (int []){1024, 5052, 2258, 4832},
},
{
/* Lenovo ThinkPad X240 */
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X240"),
},
.driver_data = (int []){1232, 5710, 1156, 4696},
},
{
/* Lenovo ThinkPad T440s */
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T440"),
},
.driver_data = (int []){1024, 5112, 2024, 4832},
},
{
/* Lenovo ThinkPad T540p */
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T540"),
},
.driver_data = (int []){1024, 5056, 2058, 4832},
},
#endif
{ }
};

void __init synaptics_module_init(void)
{
const struct dmi_system_id *min_max_dmi;

impaired_toshiba_kbc = dmi_check_system(toshiba_dmi_table);
broken_olpc_ec = dmi_check_system(olpc_dmi_table);

min_max_dmi = dmi_first_match(min_max_dmi_table);
if (min_max_dmi)
quirk_min_max = min_max_dmi->driver_data;
}

static int __synaptics_init(struct psmouse *psmouse, bool absolute_mode)
Expand Down
73 changes: 42 additions & 31 deletions drivers/input/mousedev.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ struct mousedev {
struct device dev;
struct cdev cdev;
bool exist;
bool is_mixdev;

struct list_head mixdev_node;
bool opened_by_mixdev;
Expand All @@ -77,6 +76,9 @@ struct mousedev {
int old_x[4], old_y[4];
int frac_dx, frac_dy;
unsigned long touch;

int (*open_device)(struct mousedev *mousedev);
void (*close_device)(struct mousedev *mousedev);
};

enum mousedev_emul {
Expand Down Expand Up @@ -116,9 +118,6 @@ static unsigned char mousedev_imex_seq[] = { 0xf3, 200, 0xf3, 200, 0xf3, 80 };
static struct mousedev *mousedev_mix;
static LIST_HEAD(mousedev_mix_list);

static void mixdev_open_devices(void);
static void mixdev_close_devices(void);

#define fx(i) (mousedev->old_x[(mousedev->pkt_count - (i)) & 03])
#define fy(i) (mousedev->old_y[(mousedev->pkt_count - (i)) & 03])

Expand Down Expand Up @@ -428,9 +427,7 @@ static int mousedev_open_device(struct mousedev *mousedev)
if (retval)
return retval;

if (mousedev->is_mixdev)
mixdev_open_devices();
else if (!mousedev->exist)
if (!mousedev->exist)
retval = -ENODEV;
else if (!mousedev->open++) {
retval = input_open_device(&mousedev->handle);
Expand All @@ -446,9 +443,7 @@ static void mousedev_close_device(struct mousedev *mousedev)
{
mutex_lock(&mousedev->mutex);

if (mousedev->is_mixdev)
mixdev_close_devices();
else if (mousedev->exist && !--mousedev->open)
if (mousedev->exist && !--mousedev->open)
input_close_device(&mousedev->handle);

mutex_unlock(&mousedev->mutex);
Expand All @@ -459,41 +454,52 @@ static void mousedev_close_device(struct mousedev *mousedev)
* stream. Note that this function is called with mousedev_mix->mutex
* held.
*/
static void mixdev_open_devices(void)
static int mixdev_open_devices(struct mousedev *mixdev)
{
struct mousedev *mousedev;
int error;

error = mutex_lock_interruptible(&mixdev->mutex);
if (error)
return error;

if (mousedev_mix->open++)
return;
if (!mixdev->open++) {
struct mousedev *mousedev;

list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) {
if (!mousedev->opened_by_mixdev) {
if (mousedev_open_device(mousedev))
continue;
list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) {
if (!mousedev->opened_by_mixdev) {
if (mousedev_open_device(mousedev))
continue;

mousedev->opened_by_mixdev = true;
mousedev->opened_by_mixdev = true;
}
}
}

mutex_unlock(&mixdev->mutex);
return 0;
}

/*
* Close all devices that were opened as part of multiplexed
* device. Note that this function is called with mousedev_mix->mutex
* held.
*/
static void mixdev_close_devices(void)
static void mixdev_close_devices(struct mousedev *mixdev)
{
struct mousedev *mousedev;
mutex_lock(&mixdev->mutex);

if (--mousedev_mix->open)
return;
if (!--mixdev->open) {
struct mousedev *mousedev;

list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) {
if (mousedev->opened_by_mixdev) {
mousedev->opened_by_mixdev = false;
mousedev_close_device(mousedev);
list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) {
if (mousedev->opened_by_mixdev) {
mousedev->opened_by_mixdev = false;
mousedev_close_device(mousedev);
}
}
}

mutex_unlock(&mixdev->mutex);
}


Expand Down Expand Up @@ -522,7 +528,7 @@ static int mousedev_release(struct inode *inode, struct file *file)
mousedev_detach_client(mousedev, client);
kfree(client);

mousedev_close_device(mousedev);
mousedev->close_device(mousedev);

return 0;
}
Expand Down Expand Up @@ -550,7 +556,7 @@ static int mousedev_open(struct inode *inode, struct file *file)
client->mousedev = mousedev;
mousedev_attach_client(mousedev, client);

error = mousedev_open_device(mousedev);
error = mousedev->open_device(mousedev);
if (error)
goto err_free_client;

Expand Down Expand Up @@ -861,16 +867,21 @@ static struct mousedev *mousedev_create(struct input_dev *dev,

if (mixdev) {
dev_set_name(&mousedev->dev, "mice");

mousedev->open_device = mixdev_open_devices;
mousedev->close_device = mixdev_close_devices;
} else {
int dev_no = minor;
/* Normalize device number if it falls into legacy range */
if (dev_no < MOUSEDEV_MINOR_BASE + MOUSEDEV_MINORS)
dev_no -= MOUSEDEV_MINOR_BASE;
dev_set_name(&mousedev->dev, "mouse%d", dev_no);

mousedev->open_device = mousedev_open_device;
mousedev->close_device = mousedev_close_device;
}

mousedev->exist = true;
mousedev->is_mixdev = mixdev;
mousedev->handle.dev = input_get_device(dev);
mousedev->handle.name = dev_name(&mousedev->dev);
mousedev->handle.handler = handler;
Expand Down Expand Up @@ -919,7 +930,7 @@ static void mousedev_destroy(struct mousedev *mousedev)
device_del(&mousedev->dev);
mousedev_cleanup(mousedev);
input_free_minor(MINOR(mousedev->dev.devt));
if (!mousedev->is_mixdev)
if (mousedev != mousedev_mix)
input_unregister_handle(&mousedev->handle);
put_device(&mousedev->dev);
}
Expand Down
4 changes: 2 additions & 2 deletions drivers/net/ethernet/marvell/mvneta.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@
#define MVNETA_GMAC_MAX_RX_SIZE_MASK 0x7ffc
#define MVNETA_GMAC0_PORT_ENABLE BIT(0)
#define MVNETA_GMAC_CTRL_2 0x2c08
#define MVNETA_GMAC2_PSC_ENABLE BIT(3)
#define MVNETA_GMAC2_PCS_ENABLE BIT(3)
#define MVNETA_GMAC2_PORT_RGMII BIT(4)
#define MVNETA_GMAC2_PORT_RESET BIT(6)
#define MVNETA_GMAC_STATUS 0x2c10
Expand Down Expand Up @@ -655,7 +655,7 @@ static void mvneta_port_sgmii_config(struct mvneta_port *pp)
u32 val;

val = mvreg_read(pp, MVNETA_GMAC_CTRL_2);
val |= MVNETA_GMAC2_PSC_ENABLE;
val |= MVNETA_GMAC2_PCS_ENABLE;
mvreg_write(pp, MVNETA_GMAC_CTRL_2, val);
}

Expand Down
4 changes: 2 additions & 2 deletions drivers/vfio/vfio_iommu_type1.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,12 +138,12 @@ static bool is_invalid_reserved_pfn(unsigned long pfn)
if (pfn_valid(pfn)) {
bool reserved;
struct page *tail = pfn_to_page(pfn);
struct page *head = compound_trans_head(tail);
struct page *head = compound_head(tail);
reserved = !!(PageReserved(head));
if (head != tail) {
/*
* "head" is not a dangling pointer
* (compound_trans_head takes care of that)
* (compound_head takes care of that)
* but the hugepage may have been split
* from under us (and we may not hold a
* reference count on the head page so it can
Expand Down
15 changes: 9 additions & 6 deletions fs/ext4/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include <linux/slab.h>
#include <linux/ratelimit.h>
#include <linux/aio.h>
#include <linux/bitops.h>

#include "ext4_jbd2.h"
#include "xattr.h"
Expand Down Expand Up @@ -4044,18 +4045,20 @@ int ext4_get_inode_loc(struct inode *inode, struct ext4_iloc *iloc)
void ext4_set_inode_flags(struct inode *inode)
{
unsigned int flags = EXT4_I(inode)->i_flags;
unsigned int new_fl = 0;

inode->i_flags &= ~(S_SYNC|S_APPEND|S_IMMUTABLE|S_NOATIME|S_DIRSYNC);
if (flags & EXT4_SYNC_FL)
inode->i_flags |= S_SYNC;
new_fl |= S_SYNC;
if (flags & EXT4_APPEND_FL)
inode->i_flags |= S_APPEND;
new_fl |= S_APPEND;
if (flags & EXT4_IMMUTABLE_FL)
inode->i_flags |= S_IMMUTABLE;
new_fl |= S_IMMUTABLE;
if (flags & EXT4_NOATIME_FL)
inode->i_flags |= S_NOATIME;
new_fl |= S_NOATIME;
if (flags & EXT4_DIRSYNC_FL)
inode->i_flags |= S_DIRSYNC;
new_fl |= S_DIRSYNC;
set_mask_bits(&inode->i_flags,
S_SYNC|S_APPEND|S_IMMUTABLE|S_NOATIME|S_DIRSYNC, new_fl);
}

/* Propagate flags from i_flags to EXT4_I(inode)->i_flags */
Expand Down
2 changes: 1 addition & 1 deletion fs/proc/page.c
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ u64 stable_page_flags(struct page *page)
* just checks PG_head/PG_tail, so we need to check PageLRU to make
* sure a given page is a thp, not a non-huge compound page.
*/
else if (PageTransCompound(page) && PageLRU(compound_trans_head(page)))
else if (PageTransCompound(page) && PageLRU(compound_head(page)))
u |= 1 << KPF_THP;

/*
Expand Down
15 changes: 15 additions & 0 deletions include/linux/bitops.h
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,21 @@ static inline unsigned long __ffs64(u64 word)

#ifdef __KERNEL__

#ifndef set_mask_bits
#define set_mask_bits(ptr, _mask, _bits) \
({ \
const typeof(*ptr) mask = (_mask), bits = (_bits); \
typeof(*ptr) old, new; \
\
do { \
old = ACCESS_ONCE(*ptr); \
new = (old & ~mask) | bits; \
} while (cmpxchg(ptr, old, new) != old); \
\
new; \
})
#endif

#ifndef find_last_bit
/**
* find_last_bit - find the last set bit in a memory region
Expand Down
Loading