aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2012-10-09 11:12:12 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2012-10-11 06:26:06 +0000
commit1d67e1e2397c244efb12be42244e2f4014314783 (patch)
tree220579c2f65b35b6797040c5129d5b52f2869c23
parentf3039bc4ab2622e832072fb547cfab4324d2a28e (diff)
downloadaports-1d67e1e2397c244efb12be42244e2f4014314783.tar.bz2
aports-1d67e1e2397c244efb12be42244e2f4014314783.tar.xz
main/linux-grsec: upgrade to 3.4.13
(cherry picked from commit 15fefd54e2bae9d699a71f31237a82cb76769867)
-rw-r--r--main/linux-grsec/APKBUILD10
-rw-r--r--main/linux-grsec/grsecurity-2.9.1-3.4.13-0.patch (renamed from main/linux-grsec/grsecurity-2.9.1-3.4.11-3.patch)468
2 files changed, 202 insertions, 276 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index 5ebe063c27..91821d85d7 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -2,9 +2,9 @@
_flavor=grsec
pkgname=linux-${_flavor}
-pkgver=3.4.11
+pkgver=3.4.13
_kernver=3.4
-pkgrel=2
+pkgrel=0
pkgdesc="Linux kernel with grsecurity"
url=http://grsecurity.net
depends="mkinitfs linux-firmware"
@@ -14,7 +14,7 @@ _config=${config:-kernelconfig.${CARCH}}
install=
source="http://ftp.kernel.org/pub/linux/kernel/v3.x/linux-$_kernver.tar.xz
http://ftp.kernel.org/pub/linux/kernel/v3.x/patch-$pkgver.xz
- grsecurity-2.9.1-$pkgver-3.patch
+ grsecurity-2.9.1-$pkgver-0.patch
0004-arp-flush-arp-cache-on-device-change.patch
0001-Revert-ipv4-Don-t-use-the-cached-pmtu-informations-f.patch
@@ -141,8 +141,8 @@ dev() {
}
md5sums="967f72983655e2479f951195953e8480 linux-3.4.tar.xz
-2149df47fc96fec05787bf0197fb7b16 patch-3.4.11.xz
-fe55cc4d88fa6749b90d77152b42ea7f grsecurity-2.9.1-3.4.11-3.patch
+65c1d3da2074c552e0a405a1c2f44310 patch-3.4.13.xz
+85662da416e9680c687576fa035e9918 grsecurity-2.9.1-3.4.13-0.patch
776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch
cb6fcd6e966e73c87a839c4c0183f81f 0001-Revert-ipv4-Don-t-use-the-cached-pmtu-informations-f.patch
d2f7ba780ff7567c21381428264d7fdd intel_idle.patch
diff --git a/main/linux-grsec/grsecurity-2.9.1-3.4.11-3.patch b/main/linux-grsec/grsecurity-2.9.1-3.4.13-0.patch
index 659c8d52c4..85b99909ee 100644
--- a/main/linux-grsec/grsecurity-2.9.1-3.4.11-3.patch
+++ b/main/linux-grsec/grsecurity-2.9.1-3.4.13-0.patch
@@ -269,7 +269,7 @@ index 88fd7f5..b318a78 100644
==============================================================
diff --git a/Makefile b/Makefile
-index 22345c0..33cbc29 100644
+index 75b37ce..2656841 100644
--- a/Makefile
+++ b/Makefile
@@ -245,8 +245,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -480,7 +480,7 @@ index 22345c0..33cbc29 100644
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir) $(@:.ko=.o)
diff --git a/arch/alpha/include/asm/atomic.h b/arch/alpha/include/asm/atomic.h
-index 3bb7ffe..347a54c 100644
+index c2cbe4f..f7264b4 100644
--- a/arch/alpha/include/asm/atomic.h
+++ b/arch/alpha/include/asm/atomic.h
@@ -250,6 +250,16 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
@@ -1587,7 +1587,7 @@ index 0f04d84..2be5648 100644
/*
* Change these and you break ASM code in entry-common.S
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
-index 71f6536..602f279 100644
+index 0a070e9..9e9e129 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -22,6 +22,8 @@
@@ -1599,7 +1599,7 @@ index 71f6536..602f279 100644
/*
* The exception table consists of pairs of addresses: the first is the
* address of an instruction that is allowed to fault, and the second is
-@@ -387,8 +389,23 @@ do { \
+@@ -401,8 +403,23 @@ do { \
#ifdef CONFIG_MMU
@@ -1625,7 +1625,7 @@ index 71f6536..602f279 100644
extern unsigned long __must_check __copy_to_user_std(void __user *to, const void *from, unsigned long n);
extern unsigned long __must_check __clear_user(void __user *addr, unsigned long n);
extern unsigned long __must_check __clear_user_std(void __user *addr, unsigned long n);
-@@ -403,6 +420,9 @@ extern unsigned long __must_check __strnlen_user(const char __user *s, long n);
+@@ -417,6 +434,9 @@ extern unsigned long __must_check __strnlen_user(const char __user *s, long n);
static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
{
@@ -1635,7 +1635,7 @@ index 71f6536..602f279 100644
if (access_ok(VERIFY_READ, from, n))
n = __copy_from_user(to, from, n);
else /* security hole - plug it */
-@@ -412,6 +432,9 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __u
+@@ -426,6 +446,9 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __u
static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
{
@@ -1743,7 +1743,7 @@ index ebfac78..cbea9c0 100644
#endif
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
-index a8ad1e3..859d689 100644
+index a53a5a3..1e0dfe1 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -264,6 +264,8 @@ static int __die(const char *str, int err, struct thread_info *thread, struct pt
@@ -13847,7 +13847,7 @@ index 7261083..5c12053 100644
bogus_magic:
jmp bogus_magic
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
-index 73ef56c..0238021 100644
+index bda833c..a9bdd97 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -276,6 +276,13 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
@@ -27906,10 +27906,10 @@ index bbac51e..4c094f9 100644
/*
* Buggy BIOS check
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index d31ee55..8363a8b 100644
+index cf4837f..37996a1 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
-@@ -4742,7 +4742,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
+@@ -4743,7 +4743,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
struct ata_port *ap;
unsigned int tag;
@@ -27918,7 +27918,7 @@ index d31ee55..8363a8b 100644
ap = qc->ap;
qc->flags = 0;
-@@ -4758,7 +4758,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
+@@ -4759,7 +4759,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
struct ata_port *ap;
struct ata_link *link;
@@ -27927,7 +27927,7 @@ index d31ee55..8363a8b 100644
WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
ap = qc->ap;
link = qc->dev->link;
-@@ -5822,6 +5822,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5823,6 +5823,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
return;
spin_lock(&lock);
@@ -27935,7 +27935,7 @@ index d31ee55..8363a8b 100644
for (cur = ops->inherits; cur; cur = cur->inherits) {
void **inherit = (void **)cur;
-@@ -5835,8 +5836,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5836,8 +5837,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
if (IS_ERR(*pp))
*pp = NULL;
@@ -30708,7 +30708,7 @@ index 26c67a7..8d4cbcb 100644
INIT_WORK(&dev_priv->hotplug_work, i915_hotplug_work_func);
INIT_WORK(&dev_priv->error_work, i915_error_work_func);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 3de3d9b..7cb4130 100644
+index 498bcbe..a5108da 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2254,7 +2254,7 @@ intel_finish_fb(struct drm_framebuffer *old_fb)
@@ -31066,10 +31066,10 @@ index 5a82b6b..9e69c73 100644
if (regcomp
(&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
-index 138b952..d74f9cb 100644
+index 66150f0..b2b91fa 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
-@@ -253,7 +253,7 @@ struct radeon_fence_driver {
+@@ -238,7 +238,7 @@ struct radeon_fence_driver {
uint32_t scratch_reg;
uint64_t gpu_addr;
volatile uint32_t *cpu_addr;
@@ -31078,7 +31078,7 @@ index 138b952..d74f9cb 100644
uint32_t last_seq;
unsigned long last_jiffies;
unsigned long last_timeout;
-@@ -753,7 +753,7 @@ struct r600_blit_cp_primitives {
+@@ -738,7 +738,7 @@ struct r600_blit_cp_primitives {
int x2, int y2);
void (*draw_auto)(struct radeon_device *rdev);
void (*set_default_state)(struct radeon_device *rdev);
@@ -31087,7 +31087,7 @@ index 138b952..d74f9cb 100644
struct r600_blit {
struct mutex mutex;
-@@ -1246,7 +1246,7 @@ struct radeon_asic {
+@@ -1231,7 +1231,7 @@ struct radeon_asic {
u32 (*page_flip)(struct radeon_device *rdev, int crtc, u64 crtc_base);
void (*post_page_flip)(struct radeon_device *rdev, int crtc);
} pflip;
@@ -31097,7 +31097,7 @@ index 138b952..d74f9cb 100644
/*
* Asic structures
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
-index 5992502..c19c633 100644
+index de5e0b5..ddf4578 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -691,7 +691,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
@@ -31359,7 +31359,7 @@ index d391f48..10c8ca3 100644
case VIA_IRQ_ABSOLUTE:
break;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
-index d0f2c07..9ebd9c3 100644
+index 29c984f..4084f1a 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
@@ -263,7 +263,7 @@ struct vmw_private {
@@ -33435,7 +33435,7 @@ index 35c94ff..20d4c17 100644
schedule_work(&sc->trigger_event);
}
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
-index 2e227fb..44ead1f 100644
+index f220a69..512fd1c 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -390,7 +390,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
@@ -33470,7 +33470,7 @@ index 737d388..811ad5a 100644
pmd->bl_info.value_type.inc = data_block_inc;
pmd->bl_info.value_type.dec = data_block_dec;
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
-index e24143c..ce2f21a1 100644
+index 9ff3019..c119fde 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -176,9 +176,9 @@ struct mapped_device {
@@ -33485,7 +33485,7 @@ index e24143c..ce2f21a1 100644
struct list_head uevent_list;
spinlock_t uevent_lock; /* Protect access to uevent_list */
-@@ -1845,8 +1845,8 @@ static struct mapped_device *alloc_dev(int minor)
+@@ -1865,8 +1865,8 @@ static struct mapped_device *alloc_dev(int minor)
rwlock_init(&md->map_lock);
atomic_set(&md->holders, 1);
atomic_set(&md->open_count, 0);
@@ -33496,7 +33496,7 @@ index e24143c..ce2f21a1 100644
INIT_LIST_HEAD(&md->uevent_list);
spin_lock_init(&md->uevent_lock);
-@@ -1980,7 +1980,7 @@ static void event_callback(void *context)
+@@ -2000,7 +2000,7 @@ static void event_callback(void *context)
dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
@@ -33505,7 +33505,7 @@ index e24143c..ce2f21a1 100644
wake_up(&md->eventq);
}
-@@ -2622,18 +2622,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
+@@ -2642,18 +2642,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
uint32_t dm_next_uevent_seq(struct mapped_device *md)
{
@@ -33528,7 +33528,7 @@ index e24143c..ce2f21a1 100644
void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
diff --git a/drivers/md/md.c b/drivers/md/md.c
-index 9ee8ce3..362b519 100644
+index 529ce89..3d98163 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -277,10 +277,10 @@ EXPORT_SYMBOL_GPL(md_trim_bio);
@@ -33553,7 +33553,7 @@ index 9ee8ce3..362b519 100644
wake_up(&md_event_waiters);
}
-@@ -1526,7 +1526,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
+@@ -1529,7 +1529,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
rdev->preferred_minor = 0xffff;
rdev->data_offset = le64_to_cpu(sb->data_offset);
@@ -33562,7 +33562,7 @@ index 9ee8ce3..362b519 100644
rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256;
bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1;
-@@ -1745,7 +1745,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
+@@ -1748,7 +1748,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
else
sb->resync_offset = cpu_to_le64(0);
@@ -33571,7 +33571,7 @@ index 9ee8ce3..362b519 100644
sb->raid_disks = cpu_to_le32(mddev->raid_disks);
sb->size = cpu_to_le64(mddev->dev_sectors);
-@@ -2691,7 +2691,7 @@ __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store);
+@@ -2694,7 +2694,7 @@ __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store);
static ssize_t
errors_show(struct md_rdev *rdev, char *page)
{
@@ -33580,7 +33580,7 @@ index 9ee8ce3..362b519 100644
}
static ssize_t
-@@ -2700,7 +2700,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
+@@ -2703,7 +2703,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
char *e;
unsigned long n = simple_strtoul(buf, &e, 10);
if (*buf && (*e == 0 || *e == '\n')) {
@@ -33589,7 +33589,7 @@ index 9ee8ce3..362b519 100644
return len;
}
return -EINVAL;
-@@ -3086,8 +3086,8 @@ int md_rdev_init(struct md_rdev *rdev)
+@@ -3089,8 +3089,8 @@ int md_rdev_init(struct md_rdev *rdev)
rdev->sb_loaded = 0;
rdev->bb_page = NULL;
atomic_set(&rdev->nr_pending, 0);
@@ -33600,7 +33600,7 @@ index 9ee8ce3..362b519 100644
INIT_LIST_HEAD(&rdev->same_set);
init_waitqueue_head(&rdev->blocked_wait);
-@@ -6748,7 +6748,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
+@@ -6751,7 +6751,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
spin_unlock(&pers_lock);
seq_printf(seq, "\n");
@@ -33609,7 +33609,7 @@ index 9ee8ce3..362b519 100644
return 0;
}
if (v == (void*)2) {
-@@ -6851,7 +6851,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
+@@ -6854,7 +6854,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
return error;
seq = file->private_data;
@@ -33618,7 +33618,7 @@ index 9ee8ce3..362b519 100644
return error;
}
-@@ -6865,7 +6865,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
+@@ -6868,7 +6868,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
/* always allow read */
mask = POLLIN | POLLRDNORM;
@@ -33627,7 +33627,7 @@ index 9ee8ce3..362b519 100644
mask |= POLLERR | POLLPRI;
return mask;
}
-@@ -6909,7 +6909,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
+@@ -6912,7 +6912,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
(int)part_stat_read(&disk->part0, sectors[1]) -
@@ -33739,10 +33739,10 @@ index 23904d2..c4801f9 100644
"md/raid1:%s: read error corrected "
"(%d sectors at %llu on %s)\n",
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
-index a954c95..6e7a21c 100644
+index 1f7e8cd..4d1e9db 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
-@@ -1684,7 +1684,7 @@ static void end_sync_read(struct bio *bio, int error)
+@@ -1688,7 +1688,7 @@ static void end_sync_read(struct bio *bio, int error)
/* The write handler will notice the lack of
* R10BIO_Uptodate and record any errors etc
*/
@@ -33751,7 +33751,7 @@ index a954c95..6e7a21c 100644
&conf->mirrors[d].rdev->corrected_errors);
/* for reconstruct, we always reschedule after a read.
-@@ -2033,7 +2033,7 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
+@@ -2037,7 +2037,7 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
{
struct timespec cur_time_mon;
unsigned long hours_since_last;
@@ -33760,7 +33760,7 @@ index a954c95..6e7a21c 100644
ktime_get_ts(&cur_time_mon);
-@@ -2055,9 +2055,9 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
+@@ -2059,9 +2059,9 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
* overflowing the shift of read_errors by hours_since_last.
*/
if (hours_since_last >= 8 * sizeof(read_errors))
@@ -33772,7 +33772,7 @@ index a954c95..6e7a21c 100644
}
static int r10_sync_page_io(struct md_rdev *rdev, sector_t sector,
-@@ -2111,8 +2111,8 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
+@@ -2115,8 +2115,8 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
return;
check_decay_read_errors(mddev, rdev);
@@ -33783,7 +33783,7 @@ index a954c95..6e7a21c 100644
char b[BDEVNAME_SIZE];
bdevname(rdev->bdev, b);
-@@ -2120,7 +2120,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
+@@ -2124,7 +2124,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
"md/raid10:%s: %s: Raid device exceeded "
"read_error threshold [cur %d:max %d]\n",
mdname(mddev), b,
@@ -33792,7 +33792,7 @@ index a954c95..6e7a21c 100644
printk(KERN_NOTICE
"md/raid10:%s: %s: Failing raid device\n",
mdname(mddev), b);
-@@ -2271,7 +2271,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
+@@ -2275,7 +2275,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
(unsigned long long)(
sect + rdev->data_offset),
bdevname(rdev->bdev, b));
@@ -33802,10 +33802,10 @@ index a954c95..6e7a21c 100644
rdev_dec_pending(rdev, mddev);
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 73a5800..2b0e3b1 100644
+index 0240576..2159769 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
-@@ -1694,18 +1694,18 @@ static void raid5_end_read_request(struct bio * bi, int error)
+@@ -1698,18 +1698,18 @@ static void raid5_end_read_request(struct bio * bi, int error)
(unsigned long long)(sh->sector
+ rdev->data_offset),
bdevname(rdev->bdev, b));
@@ -33828,7 +33828,7 @@ index 73a5800..2b0e3b1 100644
if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
printk_ratelimited(
KERN_WARNING
-@@ -1734,7 +1734,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
+@@ -1738,7 +1738,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
(unsigned long long)(sh->sector
+ rdev->data_offset),
bdn);
@@ -33963,33 +33963,6 @@ index 9cde353..8c6a1c3 100644
struct i2c_client i2c_client;
u32 i2c_rc;
-diff --git a/drivers/media/video/cx25821/cx25821-core.c b/drivers/media/video/cx25821/cx25821-core.c
-index 7930ca5..235bf7d 100644
---- a/drivers/media/video/cx25821/cx25821-core.c
-+++ b/drivers/media/video/cx25821/cx25821-core.c
-@@ -912,9 +912,6 @@ static int cx25821_dev_setup(struct cx25821_dev *dev)
- list_add_tail(&dev->devlist, &cx25821_devlist);
- mutex_unlock(&cx25821_devlist_mutex);
-
-- strcpy(cx25821_boards[UNKNOWN_BOARD].name, "unknown");
-- strcpy(cx25821_boards[CX25821_BOARD].name, "cx25821");
--
- if (dev->pci->device != 0x8210) {
- pr_info("%s(): Exiting. Incorrect Hardware device = 0x%02x\n",
- __func__, dev->pci->device);
-diff --git a/drivers/media/video/cx25821/cx25821.h b/drivers/media/video/cx25821/cx25821.h
-index b9aa801..029f293 100644
---- a/drivers/media/video/cx25821/cx25821.h
-+++ b/drivers/media/video/cx25821/cx25821.h
-@@ -187,7 +187,7 @@ enum port {
- };
-
- struct cx25821_board {
-- char *name;
-+ const char *name;
- enum port porta;
- enum port portb;
- enum port portc;
diff --git a/drivers/media/video/cx88/cx88-alsa.c b/drivers/media/video/cx88/cx88-alsa.c
index 04bf662..e0ac026 100644
--- a/drivers/media/video/cx88/cx88-alsa.c
@@ -35225,7 +35198,7 @@ index 4a518a3..936b334 100644
#define VXGE_HW_VIRTUAL_PATH_HANDLE(vpath) \
((struct __vxge_hw_vpath_handle *)(vpath)->vpath_handles.next)
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index a73bbe7..94abcb7 100644
+index 5fb74c4..1ce6ac0 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -708,17 +708,17 @@ struct rtl8169_private {
@@ -36728,7 +36701,7 @@ index b48c24f..dac0fbc 100644
/* These three are default values which can be overridden */
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
-index 500e20d..ebd3059 100644
+index 8a5e25d..5b4193c 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -521,7 +521,7 @@ static inline u32 next_command(struct ctlr_info *h)
@@ -36740,7 +36713,7 @@ index 500e20d..ebd3059 100644
if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) {
a = *(h->reply_pool_head); /* Next cmd in ring buffer */
-@@ -3002,7 +3002,7 @@ static void start_io(struct ctlr_info *h)
+@@ -3003,7 +3003,7 @@ static void start_io(struct ctlr_info *h)
while (!list_empty(&h->reqQ)) {
c = list_entry(h->reqQ.next, struct CommandList, list);
/* can't do anything if fifo is full */
@@ -36749,7 +36722,7 @@ index 500e20d..ebd3059 100644
dev_warn(&h->pdev->dev, "fifo full\n");
break;
}
-@@ -3012,7 +3012,7 @@ static void start_io(struct ctlr_info *h)
+@@ -3013,7 +3013,7 @@ static void start_io(struct ctlr_info *h)
h->Qdepth--;
/* Tell the controller execute command */
@@ -36758,7 +36731,7 @@ index 500e20d..ebd3059 100644
/* Put job onto the completed Q */
addQ(&h->cmpQ, c);
-@@ -3021,17 +3021,17 @@ static void start_io(struct ctlr_info *h)
+@@ -3022,17 +3022,17 @@ static void start_io(struct ctlr_info *h)
static inline unsigned long get_next_completion(struct ctlr_info *h)
{
@@ -36779,7 +36752,7 @@ index 500e20d..ebd3059 100644
(h->interrupts_enabled == 0);
}
-@@ -3930,7 +3930,7 @@ static int __devinit hpsa_pci_init(struct ctlr_info *h)
+@@ -3931,7 +3931,7 @@ static int __devinit hpsa_pci_init(struct ctlr_info *h)
if (prod_index < 0)
return -ENODEV;
h->product_name = products[prod_index].product_name;
@@ -36788,7 +36761,7 @@ index 500e20d..ebd3059 100644
if (hpsa_board_disabled(h->pdev)) {
dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
-@@ -4175,7 +4175,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
+@@ -4176,7 +4176,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
assert_spin_locked(&lockup_detector_lock);
remove_ctlr_from_lockup_detector_list(h);
@@ -36797,7 +36770,7 @@ index 500e20d..ebd3059 100644
spin_lock_irqsave(&h->lock, flags);
h->lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
spin_unlock_irqrestore(&h->lock, flags);
-@@ -4355,7 +4355,7 @@ reinit_after_soft_reset:
+@@ -4356,7 +4356,7 @@ reinit_after_soft_reset:
}
/* make sure the board interrupts are off */
@@ -36806,7 +36779,7 @@ index 500e20d..ebd3059 100644
if (hpsa_request_irq(h, do_hpsa_intr_msi, do_hpsa_intr_intx))
goto clean2;
-@@ -4389,7 +4389,7 @@ reinit_after_soft_reset:
+@@ -4390,7 +4390,7 @@ reinit_after_soft_reset:
* fake ones to scoop up any residual completions.
*/
spin_lock_irqsave(&h->lock, flags);
@@ -36815,7 +36788,7 @@ index 500e20d..ebd3059 100644
spin_unlock_irqrestore(&h->lock, flags);
free_irq(h->intr[h->intr_mode], h);
rc = hpsa_request_irq(h, hpsa_msix_discard_completions,
-@@ -4408,9 +4408,9 @@ reinit_after_soft_reset:
+@@ -4409,9 +4409,9 @@ reinit_after_soft_reset:
dev_info(&h->pdev->dev, "Board READY.\n");
dev_info(&h->pdev->dev,
"Waiting for stale completions to drain.\n");
@@ -36827,7 +36800,7 @@ index 500e20d..ebd3059 100644
rc = controller_reset_failed(h->cfgtable);
if (rc)
-@@ -4431,7 +4431,7 @@ reinit_after_soft_reset:
+@@ -4432,7 +4432,7 @@ reinit_after_soft_reset:
}
/* Turn the interrupts on so we can service requests */
@@ -36836,7 +36809,7 @@ index 500e20d..ebd3059 100644
hpsa_hba_inquiry(h);
hpsa_register_scsi(h); /* hook ourselves into SCSI subsystem */
-@@ -4483,7 +4483,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
+@@ -4484,7 +4484,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
* To write all data in the battery backed cache to disks
*/
hpsa_flush_cache(h);
@@ -36845,7 +36818,7 @@ index 500e20d..ebd3059 100644
free_irq(h->intr[h->intr_mode], h);
#ifdef CONFIG_PCI_MSI
if (h->msix_vector)
-@@ -4657,7 +4657,7 @@ static __devinit void hpsa_enter_performant_mode(struct ctlr_info *h,
+@@ -4658,7 +4658,7 @@ static __devinit void hpsa_enter_performant_mode(struct ctlr_info *h,
return;
}
/* Change the access methods to the performant access methods */
@@ -37018,19 +36991,6 @@ index d109cc3..09f4e7d 100644
.qc_prep = ata_noop_qc_prep,
.qc_issue = sas_ata_qc_issue,
.qc_fill_rtf = sas_ata_qc_fill_rtf,
-diff --git a/drivers/scsi/lpfc/Makefile b/drivers/scsi/lpfc/Makefile
-index fe5d396..e93d526 100644
---- a/drivers/scsi/lpfc/Makefile
-+++ b/drivers/scsi/lpfc/Makefile
-@@ -22,7 +22,7 @@
- ccflags-$(GCOV) := -fprofile-arcs -ftest-coverage
- ccflags-$(GCOV) += -O0
-
--ccflags-y += -Werror
-+#ccflags-y += -Werror
-
- obj-$(CONFIG_SCSI_LPFC) := lpfc.o
-
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
index 3a1ffdd..8eb7c71 100644
--- a/drivers/scsi/lpfc/lpfc.h
@@ -37419,7 +37379,7 @@ index 2bc0362..a858ebe 100644
disposition = scsi_decide_disposition(cmd);
if (disposition != SUCCESS &&
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
-index bb7c482..7551a95 100644
+index 08d48a3..2be990d 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -660,7 +660,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr, \
@@ -37668,23 +37628,6 @@ index c7b5e8b..783d6cb 100644
return -EFAULT;
return 0;
-diff --git a/drivers/staging/speakup/speakup_soft.c b/drivers/staging/speakup/speakup_soft.c
-index 42cdafe..2769103 100644
---- a/drivers/staging/speakup/speakup_soft.c
-+++ b/drivers/staging/speakup/speakup_soft.c
-@@ -241,11 +241,11 @@ static ssize_t softsynth_read(struct file *fp, char *buf, size_t count,
- break;
- } else if (!initialized) {
- if (*init) {
-- ch = *init;
- init++;
- } else {
- initialized = 1;
- }
-+ ch = *init;
- } else {
- ch = synth_buffer_getc();
- }
diff --git a/drivers/staging/usbip/usbip_common.h b/drivers/staging/usbip/usbip_common.h
index c7b888c..c94be93 100644
--- a/drivers/staging/usbip/usbip_common.h
@@ -37884,7 +37827,7 @@ index f015839..b15dfc4 100644
(cmd->transport_state & CMD_T_STOP) != 0,
(cmd->transport_state & CMD_T_SENT) != 0);
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index 222f1c5..0cdfd3e 100644
+index d594460..641adc3 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -1355,7 +1355,7 @@ struct se_device *transport_add_device_to_core_hba(
@@ -38159,10 +38102,10 @@ index 4daf962..b4a2281 100644
ipwireless_disassociate_network_ttys(network,
ttyj->channel_idx);
diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
-index c43b683..0a88f1c 100644
+index 90dff82..bfd70bf 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
-@@ -1629,7 +1629,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
+@@ -1639,7 +1639,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
kref_init(&dlci->ref);
mutex_init(&dlci->mutex);
dlci->fifo = &dlci->_fifo;
@@ -38172,10 +38115,10 @@ index c43b683..0a88f1c 100644
return NULL;
}
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
-index 94b6eda..15f7cec 100644
+index 2303a02..23081c0c 100644
--- a/drivers/tty/n_tty.c
+++ b/drivers/tty/n_tty.c
-@@ -2122,6 +2122,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
+@@ -2123,6 +2123,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
{
*ops = tty_ldisc_N_TTY;
ops->owner = NULL;
@@ -38378,7 +38321,7 @@ index 24b95db..9c078d0 100644
spin_unlock_irqrestore(&tty_ldisc_lock, flags);
}
diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
-index 3b0c4e3..f98a992 100644
+index a6d5d51..ee41004 100644
--- a/drivers/tty/vt/keyboard.c
+++ b/drivers/tty/vt/keyboard.c
@@ -663,6 +663,16 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
@@ -38398,7 +38341,7 @@ index 3b0c4e3..f98a992 100644
fn_handler[value](vc);
}
-@@ -1812,9 +1822,6 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
+@@ -1809,9 +1819,6 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
return -EFAULT;
@@ -38408,7 +38351,7 @@ index 3b0c4e3..f98a992 100644
switch (cmd) {
case KDGKBENT:
/* Ensure another thread doesn't free it under us */
-@@ -1829,6 +1836,9 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
+@@ -1826,6 +1833,9 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
spin_unlock_irqrestore(&kbd_event_lock, flags);
return put_user(val, &user_kbe->kb_value);
case KDSKBENT:
@@ -38418,7 +38361,7 @@ index 3b0c4e3..f98a992 100644
if (!perm)
return -EPERM;
if (!i && v == K_NOSUCHMAP) {
-@@ -1919,9 +1929,6 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
+@@ -1916,9 +1926,6 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
int i, j, k;
int ret;
@@ -38428,7 +38371,7 @@ index 3b0c4e3..f98a992 100644
kbs = kmalloc(sizeof(*kbs), GFP_KERNEL);
if (!kbs) {
ret = -ENOMEM;
-@@ -1955,6 +1962,9 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
+@@ -1952,6 +1959,9 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
kfree(kbs);
return ((p && *p) ? -EOVERFLOW : 0);
case KDSKBSENT:
@@ -38630,7 +38573,7 @@ index d3448ca..d2864ca 100644
if (!left--) {
if (instance->disconnected)
diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
-index d956965..4179a77 100644
+index 3440812..2a4ef1f 100644
--- a/drivers/usb/core/devices.c
+++ b/drivers/usb/core/devices.c
@@ -126,7 +126,7 @@ static const char format_endpt[] =
@@ -42116,7 +42059,7 @@ index d146e18..12d1bd1 100644
fd_offset + ex.a_text);
if (error != N_DATADDR(ex)) {
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
-index 16f7354..a2c5da7 100644
+index a009b9e..f1c9679 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -32,6 +32,7 @@
@@ -42783,7 +42726,7 @@ index 16f7354..a2c5da7 100644
fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
}
-@@ -1892,14 +2339,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum,
+@@ -1881,14 +2328,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum,
}
static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma,
@@ -42800,7 +42743,7 @@ index 16f7354..a2c5da7 100644
return size;
}
-@@ -1993,7 +2440,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -1982,7 +2429,7 @@ static int elf_core_dump(struct coredump_params *cprm)
dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
@@ -42809,7 +42752,7 @@ index 16f7354..a2c5da7 100644
offset += elf_core_extra_data_size();
e_shoff = offset;
-@@ -2007,10 +2454,12 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -1996,10 +2443,12 @@ static int elf_core_dump(struct coredump_params *cprm)
offset = dataoff;
size += sizeof(*elf);
@@ -42822,7 +42765,7 @@ index 16f7354..a2c5da7 100644
if (size > cprm->limit
|| !dump_write(cprm->file, phdr4note, sizeof(*phdr4note)))
goto end_coredump;
-@@ -2024,7 +2473,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2013,7 +2462,7 @@ static int elf_core_dump(struct coredump_params *cprm)
phdr.p_offset = offset;
phdr.p_vaddr = vma->vm_start;
phdr.p_paddr = 0;
@@ -42831,7 +42774,7 @@ index 16f7354..a2c5da7 100644
phdr.p_memsz = vma->vm_end - vma->vm_start;
offset += phdr.p_filesz;
phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
-@@ -2035,6 +2484,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2024,6 +2473,7 @@ static int elf_core_dump(struct coredump_params *cprm)
phdr.p_align = ELF_EXEC_PAGESIZE;
size += sizeof(phdr);
@@ -42839,7 +42782,7 @@ index 16f7354..a2c5da7 100644
if (size > cprm->limit
|| !dump_write(cprm->file, &phdr, sizeof(phdr)))
goto end_coredump;
-@@ -2059,7 +2509,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2048,7 +2498,7 @@ static int elf_core_dump(struct coredump_params *cprm)
unsigned long addr;
unsigned long end;
@@ -42848,7 +42791,7 @@ index 16f7354..a2c5da7 100644
for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
struct page *page;
-@@ -2068,6 +2518,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2057,6 +2507,7 @@ static int elf_core_dump(struct coredump_params *cprm)
page = get_dump_page(addr);
if (page) {
void *kaddr = kmap(page);
@@ -42856,7 +42799,7 @@ index 16f7354..a2c5da7 100644
stop = ((size += PAGE_SIZE) > cprm->limit) ||
!dump_write(cprm->file, kaddr,
PAGE_SIZE);
-@@ -2085,6 +2536,7 @@ static int elf_core_dump(struct coredump_params *cprm)
+@@ -2074,6 +2525,7 @@ static int elf_core_dump(struct coredump_params *cprm)
if (e_phnum == PN_XNUM) {
size += sizeof(*shdr4extnum);
@@ -42864,7 +42807,7 @@ index 16f7354..a2c5da7 100644
if (size > cprm->limit
|| !dump_write(cprm->file, shdr4extnum,
sizeof(*shdr4extnum)))
-@@ -2105,6 +2557,97 @@ out:
+@@ -2094,6 +2546,97 @@ out:
#endif /* CONFIG_ELF_CORE */
@@ -43850,10 +43793,10 @@ index 7e6c52d..94bc756 100644
/*
* We'll have a dentry and an inode for
diff --git a/fs/dcache.c b/fs/dcache.c
-index b80531c..8ca7e2d 100644
+index f104945..f5173ee 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
-@@ -3084,7 +3084,7 @@ void __init vfs_caches_init(unsigned long mempages)
+@@ -3090,7 +3090,7 @@ void __init vfs_caches_init(unsigned long mempages)
mempages -= reserve;
names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
@@ -43879,10 +43822,10 @@ index b80bc84..0d46d1a 100644
}
EXPORT_SYMBOL_GPL(debugfs_create_dir);
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
-index ab35b11..b30af66 100644
+index 6f5fb1a..227cfda 100644
--- a/fs/ecryptfs/inode.c
+++ b/fs/ecryptfs/inode.c
-@@ -672,7 +672,7 @@ static int ecryptfs_readlink_lower(struct dentry *dentry, char **buf,
+@@ -677,7 +677,7 @@ static int ecryptfs_readlink_lower(struct dentry *dentry, char **buf,
old_fs = get_fs();
set_fs(get_ds());
rc = lower_dentry->d_inode->i_op->readlink(lower_dentry,
@@ -43891,7 +43834,7 @@ index ab35b11..b30af66 100644
lower_bufsiz);
set_fs(old_fs);
if (rc < 0)
-@@ -718,7 +718,7 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd)
+@@ -723,7 +723,7 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd)
}
old_fs = get_fs();
set_fs(get_ds());
@@ -43900,7 +43843,7 @@ index ab35b11..b30af66 100644
set_fs(old_fs);
if (rc < 0) {
kfree(buf);
-@@ -733,7 +733,7 @@ out:
+@@ -738,7 +738,7 @@ out:
static void
ecryptfs_put_link(struct dentry *dentry, struct nameidata *nd, void *ptr)
{
@@ -47382,18 +47325,9 @@ index 4e46539..b28253c 100644
error = lock_mount(&old);
if (error)
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
-index e8bbfa5..864f936 100644
+index edf4119..88dc13c 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
-@@ -152,7 +152,7 @@ static void nfs_zap_caches_locked(struct inode *inode)
- nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
- nfsi->attrtimeo_timestamp = jiffies;
-
-- memset(NFS_COOKIEVERF(inode), 0, sizeof(NFS_COOKIEVERF(inode)));
-+ memset(NFS_COOKIEVERF(inode), 0, sizeof(NFS_I(inode)->cookieverf));
- if (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode))
- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL|NFS_INO_REVAL_PAGECACHE;
- else
@@ -1005,16 +1005,16 @@ static int nfs_size_need_update(const struct inode *inode, const struct nfs_fatt
return nfs_size_to_loff_t(fattr->size) > i_size_read(inode);
}
@@ -48871,7 +48805,7 @@ index 06e1cc1..177cd98 100644
rcu_read_lock();
task = pid_task(proc_pid(dir), PIDTYPE_PID);
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
-index 21d836f..bebf3ee 100644
+index ab53521..f2c34e2 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -12,11 +12,15 @@
@@ -48892,7 +48826,7 @@ index 21d836f..bebf3ee 100644
void proc_sys_poll_notify(struct ctl_table_poll *poll)
{
-@@ -470,8 +474,14 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
+@@ -467,8 +471,14 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
err = NULL;
d_set_d_op(dentry, &proc_sys_dentry_operations);
@@ -48905,9 +48839,9 @@ index 21d836f..bebf3ee 100644
+ err = ERR_PTR(-ENOENT);
+
out:
- sysctl_head_finish(head);
- return err;
-@@ -483,18 +493,20 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+ if (h)
+ sysctl_head_finish(h);
+@@ -482,18 +492,20 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
struct inode *inode = filp->f_path.dentry->d_inode;
struct ctl_table_header *head = grab_header(inode);
struct ctl_table *table = PROC_I(inode)->sysctl_entry;
@@ -48929,7 +48863,7 @@ index 21d836f..bebf3ee 100644
goto out;
/* if that can happen at all, it should be -EINVAL, not -EISDIR */
-@@ -502,6 +514,22 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+@@ -501,6 +513,22 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
if (!table->proc_handler)
goto out;
@@ -48952,7 +48886,7 @@ index 21d836f..bebf3ee 100644
/* careful: calling conventions are nasty here */
res = count;
error = table->proc_handler(table, write, buf, &res, ppos);
-@@ -599,6 +627,9 @@ static int proc_sys_fill_cache(struct file *filp, void *dirent,
+@@ -598,6 +626,9 @@ static int proc_sys_fill_cache(struct file *filp, void *dirent,
return -ENOMEM;
} else {
d_set_d_op(child, &proc_sys_dentry_operations);
@@ -48962,7 +48896,7 @@ index 21d836f..bebf3ee 100644
d_add(child, inode);
}
} else {
-@@ -642,6 +673,9 @@ static int scan(struct ctl_table_header *head, ctl_table *table,
+@@ -641,6 +672,9 @@ static int scan(struct ctl_table_header *head, ctl_table *table,
if ((*pos)++ < file->f_pos)
return 0;
@@ -48972,7 +48906,7 @@ index 21d836f..bebf3ee 100644
if (unlikely(S_ISLNK(table->mode)))
res = proc_sys_link_fill_cache(file, dirent, filldir, head, table);
else
-@@ -759,6 +793,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
+@@ -758,6 +792,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
if (IS_ERR(head))
return PTR_ERR(head);
@@ -48982,7 +48916,7 @@ index 21d836f..bebf3ee 100644
generic_fillattr(inode, stat);
if (table)
stat->mode = (stat->mode & S_IFMT) | table->mode;
-@@ -781,13 +818,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
+@@ -780,13 +817,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
.llseek = generic_file_llseek,
};
@@ -62292,10 +62226,10 @@ index 6b95109..bcbdd68 100644
void cleanup_module(void) __attribute__((alias(#exitfn)));
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
-index e4baff5..83bb175 100644
+index e7bafa4..d85e63e 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
-@@ -134,6 +134,12 @@ extern struct cred init_cred;
+@@ -143,6 +143,12 @@ extern struct task_group root_task_group;
#define INIT_TASK_COMM "swapper"
@@ -62308,7 +62242,7 @@ index e4baff5..83bb175 100644
/*
* INIT_TASK is used to set up the first task table, touch at
* your own risk!. Base=0, limit=0x1fffff (=2MB)
-@@ -172,6 +178,7 @@ extern struct cred init_cred;
+@@ -182,6 +188,7 @@ extern struct task_group root_task_group;
RCU_INIT_POINTER(.cred, &init_cred), \
.comm = INIT_TASK_COMM, \
.thread = INIT_THREAD, \
@@ -62494,7 +62428,7 @@ index 3797270..7765ede 100644
struct mca_bus {
u64 default_dma_mask;
diff --git a/include/linux/memory.h b/include/linux/memory.h
-index 1ac7f6e..a5794d0 100644
+index ff9a9f8..c715deb 100644
--- a/include/linux/memory.h
+++ b/include/linux/memory.h
@@ -143,7 +143,7 @@ struct memory_accessor {
@@ -62993,7 +62927,7 @@ index ffc0213..2c1f2cb 100644
return nd->saved_names[nd->depth];
}
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index 33900a5..2072000 100644
+index e517695..2760b1c 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1003,6 +1003,7 @@ struct net_device_ops {
@@ -63058,7 +62992,7 @@ index a4c5624..79d6d88 100644
/** create a directory */
struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
-index ddbb6a9..be1680e 100644
+index f18d537..baf6341 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -879,8 +879,8 @@ struct perf_event {
@@ -63338,7 +63272,7 @@ index fd07c45..4676b8e 100644
static inline void anon_vma_merge(struct vm_area_struct *vma,
struct vm_area_struct *next)
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 7b06169..eb46ae3 100644
+index 48241aa..fd3d15c 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -100,6 +100,7 @@ struct bio_list;
@@ -63405,7 +63339,7 @@ index 7b06169..eb46ae3 100644
/* Hash table maintenance information */
struct hlist_node uidhash_node;
uid_t uid;
-@@ -1386,8 +1411,8 @@ struct task_struct {
+@@ -1389,8 +1414,8 @@ struct task_struct {
struct list_head thread_group;
struct completion *vfork_done; /* for vfork() */
@@ -63416,7 +63350,7 @@ index 7b06169..eb46ae3 100644
cputime_t utime, stime, utimescaled, stimescaled;
cputime_t gtime;
-@@ -1403,13 +1428,6 @@ struct task_struct {
+@@ -1406,13 +1431,6 @@ struct task_struct {
struct task_cputime cputime_expires;
struct list_head cpu_timers[3];
@@ -63430,7 +63364,7 @@ index 7b06169..eb46ae3 100644
char comm[TASK_COMM_LEN]; /* executable name excluding path
- access with [gs]et_task_comm (which lock
it with task_lock())
-@@ -1426,8 +1444,16 @@ struct task_struct {
+@@ -1429,8 +1447,16 @@ struct task_struct {
#endif
/* CPU-specific state of this task */
struct thread_struct thread;
@@ -63447,7 +63381,7 @@ index 7b06169..eb46ae3 100644
/* open file information */
struct files_struct *files;
/* namespaces */
-@@ -1469,6 +1495,11 @@ struct task_struct {
+@@ -1472,6 +1498,11 @@ struct task_struct {
struct rt_mutex_waiter *pi_blocked_on;
#endif
@@ -63459,7 +63393,7 @@ index 7b06169..eb46ae3 100644
#ifdef CONFIG_DEBUG_MUTEXES
/* mutex deadlock detection */
struct mutex_waiter *blocked_on;
-@@ -1585,6 +1616,27 @@ struct task_struct {
+@@ -1588,6 +1619,27 @@ struct task_struct {
unsigned long default_timer_slack_ns;
struct list_head *scm_work_list;
@@ -63487,7 +63421,7 @@ index 7b06169..eb46ae3 100644
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
/* Index of current stored address in ret_stack */
int curr_ret_stack;
-@@ -1619,6 +1671,51 @@ struct task_struct {
+@@ -1622,6 +1674,51 @@ struct task_struct {
#endif
};
@@ -63539,7 +63473,7 @@ index 7b06169..eb46ae3 100644
/* Future-safe accessor for struct task_struct's cpus_allowed. */
#define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
-@@ -2146,7 +2243,9 @@ void yield(void);
+@@ -2149,7 +2246,9 @@ void yield(void);
extern struct exec_domain default_exec_domain;
union thread_union {
@@ -63549,7 +63483,7 @@ index 7b06169..eb46ae3 100644
unsigned long stack[THREAD_SIZE/sizeof(long)];
};
-@@ -2179,6 +2278,7 @@ extern struct pid_namespace init_pid_ns;
+@@ -2182,6 +2281,7 @@ extern struct pid_namespace init_pid_ns;
*/
extern struct task_struct *find_task_by_vpid(pid_t nr);
@@ -63557,7 +63491,7 @@ index 7b06169..eb46ae3 100644
extern struct task_struct *find_task_by_pid_ns(pid_t nr,
struct pid_namespace *ns);
-@@ -2322,7 +2422,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
+@@ -2325,7 +2425,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
extern void exit_itimers(struct signal_struct *);
extern void flush_itimer_signals(void);
@@ -63566,7 +63500,7 @@ index 7b06169..eb46ae3 100644
extern void daemonize(const char *, ...);
extern int allow_signal(int);
-@@ -2523,9 +2623,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
+@@ -2526,9 +2626,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
#endif
@@ -64613,10 +64547,10 @@ index a2ef814..31a8e3f 100644
#define SCTP_DISABLE_DEBUG
#define SCTP_ASSERT(expr, str, func)
diff --git a/include/net/sock.h b/include/net/sock.h
-index 5a0a58a..ed2bf11 100644
+index 5878118..f40622b 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
-@@ -302,7 +302,7 @@ struct sock {
+@@ -303,7 +303,7 @@ struct sock {
#ifdef CONFIG_RPS
__u32 sk_rxhash;
#endif
@@ -64625,7 +64559,7 @@ index 5a0a58a..ed2bf11 100644
int sk_rcvbuf;
struct sk_filter __rcu *sk_filter;
-@@ -1691,7 +1691,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
+@@ -1693,7 +1693,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
}
static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
@@ -64634,7 +64568,7 @@ index 5a0a58a..ed2bf11 100644
int copy, int offset)
{
if (skb->ip_summed == CHECKSUM_NONE) {
-@@ -1953,7 +1953,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
+@@ -1955,7 +1955,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
}
}
@@ -66234,7 +66168,7 @@ index 67b847d..93834dd 100644
#ifdef CONFIG_MODULE_UNLOAD
{
diff --git a/kernel/events/core.c b/kernel/events/core.c
-index fd126f8..70b755b 100644
+index 228fdb0..6c1a9dd 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -181,7 +181,7 @@ int perf_proc_update_handler(struct ctl_table *table, int write,
@@ -66255,7 +66189,7 @@ index fd126f8..70b755b 100644
}
static u64 perf_event_read(struct perf_event *event)
-@@ -2983,9 +2983,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
+@@ -2989,9 +2989,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
mutex_lock(&event->child_mutex);
total += perf_event_read(event);
*enabled += event->total_time_enabled +
@@ -66267,7 +66201,7 @@ index fd126f8..70b755b 100644
list_for_each_entry(child, &event->child_list, child_list) {
total += perf_event_read(child);
-@@ -3393,10 +3393,10 @@ void perf_event_update_userpage(struct perf_event *event)
+@@ -3401,10 +3401,10 @@ void perf_event_update_userpage(struct perf_event *event)
userpg->offset -= local64_read(&event->hw.prev_count);
userpg->time_enabled = enabled +
@@ -66280,7 +66214,7 @@ index fd126f8..70b755b 100644
arch_perf_update_userpage(userpg, now);
-@@ -3829,11 +3829,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
+@@ -3837,11 +3837,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
values[n++] = perf_event_count(event);
if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
values[n++] = enabled +
@@ -66294,7 +66228,7 @@ index fd126f8..70b755b 100644
}
if (read_format & PERF_FORMAT_ID)
values[n++] = primary_event_id(event);
-@@ -4511,12 +4511,12 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event)
+@@ -4519,12 +4519,12 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event)
* need to add enough zero bytes after the string to handle
* the 64bit alignment we do later.
*/
@@ -66309,7 +66243,7 @@ index fd126f8..70b755b 100644
if (IS_ERR(name)) {
name = strncpy(tmp, "//toolong", sizeof(tmp));
goto got_name;
-@@ -5929,7 +5929,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
+@@ -5938,7 +5938,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
event->parent = parent_event;
event->ns = get_pid_ns(current->nsproxy->pid_ns);
@@ -66318,7 +66252,7 @@ index fd126f8..70b755b 100644
event->state = PERF_EVENT_STATE_INACTIVE;
-@@ -6491,10 +6491,10 @@ static void sync_child_event(struct perf_event *child_event,
+@@ -6498,10 +6498,10 @@ static void sync_child_event(struct perf_event *child_event,
/*
* Add back the child's count to the parent's count:
*/
@@ -69100,7 +69034,7 @@ index 0984a21..939f183 100644
#ifdef CONFIG_RT_GROUP_SCHED
/*
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index ef6a8f2..d9bc4df 100644
+index 593087b..11634ce 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -4044,6 +4044,8 @@ int can_nice(const struct task_struct *p, const int nice)
@@ -69936,7 +69870,7 @@ index f113755..ec24223 100644
cpumask_clear_cpu(cpu, tick_get_broadcast_mask());
tick_broadcast_clear_oneshot(cpu);
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 7c50de8..e29a94d 100644
+index 12843e9..8b457cf 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -14,6 +14,7 @@
@@ -69948,7 +69882,7 @@ index 7c50de8..e29a94d 100644
#include <linux/clocksource.h>
#include <linux/jiffies.h>
@@ -388,6 +389,8 @@ int do_settimeofday(const struct timespec *tv)
- if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
+ if (!timespec_valid_strict(tv))
return -EINVAL;
+ gr_log_timechange();
@@ -70365,6 +70299,19 @@ index 209b379..7f76423 100644
tsk->comm);
put_task_struct(tsk);
}
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index 7584322..7762a27 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -3443,7 +3443,7 @@ static int __cpuinit trustee_thread(void *__gcwq)
+ */
+ worker_flags |= WORKER_REBIND;
+ worker_flags &= ~WORKER_ROGUE;
+- ACCESS_ONCE(worker->flags) = worker_flags;
++ ACCESS_ONCE_RW(worker->flags) = worker_flags;
+
+ /* queue rebind_work, wq doesn't matter, use the default one */
+ if (test_and_set_bit(WORK_STRUCT_PENDING_BIT,
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 6777153..8519f60 100644
--- a/lib/Kconfig.debug
@@ -73557,7 +73504,7 @@ index bb8f4f0..40d3e02 100644
new->vm_region = region;
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 918330f..ae99ae1 100644
+index 88a6d87..ae1c51c 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -335,7 +335,7 @@ out:
@@ -75278,10 +75225,10 @@ index 676f6a6..3b4e668 100644
frag2->seqno = htons(seqno);
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
-index 5238b6b..c9798ce 100644
+index 39b2baf..e9024d2 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
-@@ -233,7 +233,7 @@ void hci_le_ltk_reply(struct hci_conn *conn, u8 ltk[16])
+@@ -234,7 +234,7 @@ void hci_le_ltk_reply(struct hci_conn *conn, u8 ltk[16])
memset(&cp, 0, sizeof(cp));
cp.handle = cpu_to_le16(conn->handle);
@@ -75291,10 +75238,10 @@ index 5238b6b..c9798ce 100644
hci_send_cmd(hdev, HCI_OP_LE_LTK_REPLY, sizeof(cp), &cp);
}
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
-index 5914623..93355a5 100644
+index bedc768..a4a2b19 100644
--- a/net/bluetooth/hci_sock.c
+++ b/net/bluetooth/hci_sock.c
-@@ -941,7 +941,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname, char
+@@ -942,7 +942,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname, char
uf.event_mask[1] = *((u32 *) f->event_mask + 1);
}
@@ -75304,10 +75251,10 @@ index 5914623..93355a5 100644
err = -EFAULT;
break;
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
-index 9a86759..f0951ea 100644
+index 627c354..ec90d86 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
-@@ -2467,8 +2467,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len, voi
+@@ -2468,8 +2468,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len, voi
break;
case L2CAP_CONF_RFC:
@@ -75320,7 +75267,7 @@ index 9a86759..f0951ea 100644
if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
rfc.mode != chan->mode)
-@@ -2586,8 +2588,10 @@ static void l2cap_conf_rfc_get(struct l2cap_chan *chan, void *rsp, int len)
+@@ -2587,8 +2589,10 @@ static void l2cap_conf_rfc_get(struct l2cap_chan *chan, void *rsp, int len)
switch (type) {
case L2CAP_CONF_RFC:
@@ -75334,10 +75281,10 @@ index 9a86759..f0951ea 100644
}
}
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
-index 04e7c17..b37a140 100644
+index 4a26348..a018d15 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
-@@ -443,7 +443,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, char __us
+@@ -444,7 +444,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, char __us
struct sock *sk = sock->sk;
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
struct l2cap_options opts;
@@ -75347,7 +75294,7 @@ index 04e7c17..b37a140 100644
u32 opt;
BT_DBG("sk %p", sk);
-@@ -465,7 +466,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, char __us
+@@ -466,7 +467,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, char __us
opts.max_tx = chan->max_tx;
opts.txwin_size = chan->tx_win;
@@ -75356,7 +75303,7 @@ index 04e7c17..b37a140 100644
if (copy_from_user((char *) &opts, optval, len)) {
err = -EFAULT;
break;
-@@ -538,7 +539,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, ch
+@@ -539,7 +540,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, ch
struct bt_security sec;
struct bt_power pwr;
struct l2cap_conn *conn;
@@ -75366,7 +75313,7 @@ index 04e7c17..b37a140 100644
u32 opt;
BT_DBG("sk %p", sk);
-@@ -561,7 +563,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, ch
+@@ -562,7 +564,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, ch
sec.level = BT_SECURITY_LOW;
@@ -75375,7 +75322,7 @@ index 04e7c17..b37a140 100644
if (copy_from_user((char *) &sec, optval, len)) {
err = -EFAULT;
break;
-@@ -655,7 +657,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, ch
+@@ -656,7 +658,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, ch
pwr.force_active = BT_POWER_FORCE_ACTIVE_ON;
@@ -75385,10 +75332,10 @@ index 04e7c17..b37a140 100644
err = -EFAULT;
break;
diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
-index a55a43e..57c5d37 100644
+index 717c43a..d7f68b7 100644
--- a/net/bluetooth/rfcomm/sock.c
+++ b/net/bluetooth/rfcomm/sock.c
-@@ -684,7 +684,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
+@@ -685,7 +685,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
struct sock *sk = sock->sk;
struct bt_security sec;
int err = 0;
@@ -75397,7 +75344,7 @@ index a55a43e..57c5d37 100644
u32 opt;
BT_DBG("sk %p", sk);
-@@ -706,7 +706,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
+@@ -707,7 +707,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
sec.level = BT_SECURITY_LOW;
@@ -75647,10 +75594,10 @@ index e4fbfd6..6a6ac94 100644
return err;
diff --git a/net/core/dev.c b/net/core/dev.c
-index c299416..8733baa 100644
+index 3fd9cae..ebcb8ff 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -1136,9 +1136,13 @@ void dev_load(struct net *net, const char *name)
+@@ -1139,9 +1139,13 @@ void dev_load(struct net *net, const char *name)
if (no_module && capable(CAP_NET_ADMIN))
no_module = request_module("netdev-%s", name);
if (no_module && capable(CAP_SYS_MODULE)) {
@@ -75664,7 +75611,7 @@ index c299416..8733baa 100644
}
}
EXPORT_SYMBOL(dev_load);
-@@ -1603,7 +1607,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
+@@ -1606,7 +1610,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
{
if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY) {
if (skb_copy_ubufs(skb, GFP_ATOMIC)) {
@@ -75673,7 +75620,7 @@ index c299416..8733baa 100644
kfree_skb(skb);
return NET_RX_DROP;
}
-@@ -1613,7 +1617,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
+@@ -1616,7 +1620,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
nf_reset(skb);
if (unlikely(!is_skb_forwardable(dev, skb))) {
@@ -75682,7 +75629,7 @@ index c299416..8733baa 100644
kfree_skb(skb);
return NET_RX_DROP;
}
-@@ -2043,7 +2047,7 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
+@@ -2058,7 +2062,7 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
struct dev_gso_cb {
void (*destructor)(struct sk_buff *skb);
@@ -75691,7 +75638,7 @@ index c299416..8733baa 100644
#define DEV_GSO_CB(skb) ((struct dev_gso_cb *)(skb)->cb)
-@@ -2878,7 +2882,7 @@ enqueue:
+@@ -2896,7 +2900,7 @@ enqueue:
local_irq_restore(flags);
@@ -75700,7 +75647,7 @@ index c299416..8733baa 100644
kfree_skb(skb);
return NET_RX_DROP;
}
-@@ -2950,7 +2954,7 @@ int netif_rx_ni(struct sk_buff *skb)
+@@ -2968,7 +2972,7 @@ int netif_rx_ni(struct sk_buff *skb)
}
EXPORT_SYMBOL(netif_rx_ni);
@@ -75709,7 +75656,7 @@ index c299416..8733baa 100644
{
struct softnet_data *sd = &__get_cpu_var(softnet_data);
-@@ -3238,7 +3242,7 @@ ncls:
+@@ -3256,7 +3260,7 @@ ncls:
if (pt_prev) {
ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
} else {
@@ -75718,7 +75665,7 @@ index c299416..8733baa 100644
kfree_skb(skb);
/* Jamal, now you will not able to escape explaining
* me how you were going to use this. :-)
-@@ -3798,7 +3802,7 @@ void netif_napi_del(struct napi_struct *napi)
+@@ -3816,7 +3820,7 @@ void netif_napi_del(struct napi_struct *napi)
}
EXPORT_SYMBOL(netif_napi_del);
@@ -75727,7 +75674,7 @@ index c299416..8733baa 100644
{
struct softnet_data *sd = &__get_cpu_var(softnet_data);
unsigned long time_limit = jiffies + 2;
-@@ -4268,8 +4272,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v)
+@@ -4286,8 +4290,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v)
else
seq_printf(seq, "%04x", ntohs(pt->type));
@@ -75741,7 +75688,7 @@ index c299416..8733baa 100644
}
return 0;
-@@ -5821,7 +5830,7 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
+@@ -5839,7 +5848,7 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
} else {
netdev_stats_to_stats64(storage, &dev->stats);
}
@@ -75866,7 +75813,7 @@ index 611c5ef..88f6d6d 100644
{
int new_fd;
diff --git a/net/core/sock.c b/net/core/sock.c
-index 0f8402e..158dcd1 100644
+index d3e0a52..6e6d914 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -340,7 +340,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
@@ -75961,7 +75908,7 @@ index 0f8402e..158dcd1 100644
return -EFAULT;
lenout:
if (put_user(len, optlen))
-@@ -2131,7 +2131,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
+@@ -2132,7 +2132,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
*/
smp_wmb();
atomic_set(&sk->sk_refcnt, 1);
@@ -76393,10 +76340,10 @@ index 167ea10..4b15883 100644
ts = peer->tcp_ts;
tsage = get_seconds() - peer->tcp_ts_stamp;
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 56a9c8d..82e01c0 100644
+index 3acebbd..3fa7572 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
-@@ -4726,7 +4726,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
+@@ -4725,7 +4725,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
* simplifies code)
*/
static void
@@ -76690,10 +76637,10 @@ index fe14105..0618260 100644
int udp4_seq_show(struct seq_file *seq, void *v)
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
-index 7d5cb97..c56564f 100644
+index 2c69eca..3b36472 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
-@@ -2142,7 +2142,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
+@@ -2140,7 +2140,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
p.iph.ihl = 5;
p.iph.protocol = IPPROTO_IPV6;
p.iph.ttl = 64;
@@ -77456,7 +77403,7 @@ index 00bdb1d..6725a48 100644
if ((ipvs->sync_state & IP_VS_STATE_MASTER) &&
cp->protocol == IPPROTO_SCTP) {
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
-index f558998..7dfb054 100644
+index 97e7380..dc756cc 100644
--- a/net/netfilter/ipvs/ip_vs_ctl.c
+++ b/net/netfilter/ipvs/ip_vs_ctl.c
@@ -788,7 +788,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
@@ -77518,7 +77465,7 @@ index f558998..7dfb054 100644
entry.weight = atomic_read(&dest->weight);
entry.u_threshold = dest->u_threshold;
entry.l_threshold = dest->l_threshold;
-@@ -3042,7 +3043,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
+@@ -3043,7 +3044,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
NLA_PUT_U16(skb, IPVS_DEST_ATTR_PORT, dest->port);
NLA_PUT_U32(skb, IPVS_DEST_ATTR_FWD_METHOD,
@@ -77712,7 +77659,7 @@ index 4fe4fb4..87a89e5 100644
return 0;
}
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
-index faa48f7..65f7f54 100644
+index bba6ba1..2a1dc43 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -741,7 +741,7 @@ static void netlink_overrun(struct sock *sk)
@@ -77724,7 +77671,7 @@ index faa48f7..65f7f54 100644
}
static struct sock *netlink_getsockbypid(struct sock *ssk, u32 pid)
-@@ -2013,7 +2013,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
+@@ -2014,7 +2014,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
sk_wmem_alloc_get(s),
nlk->cb,
atomic_read(&s->sk_refcnt),
@@ -77754,10 +77701,10 @@ index 06592d8..64860f6 100644
*uaddr_len = sizeof(struct sockaddr_ax25);
}
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index 4f2c0df..a1a00a5 100644
+index 078fdff..fcb6109 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1687,7 +1687,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -1696,7 +1696,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
spin_lock(&sk->sk_receive_queue.lock);
po->stats.tp_packets++;
@@ -77766,7 +77713,7 @@ index 4f2c0df..a1a00a5 100644
__skb_queue_tail(&sk->sk_receive_queue, skb);
spin_unlock(&sk->sk_receive_queue.lock);
sk->sk_data_ready(sk, skb->len);
-@@ -1696,7 +1696,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -1705,7 +1705,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
drop_n_acct:
spin_lock(&sk->sk_receive_queue.lock);
po->stats.tp_drops++;
@@ -77775,7 +77722,7 @@ index 4f2c0df..a1a00a5 100644
spin_unlock(&sk->sk_receive_queue.lock);
drop_n_restore:
-@@ -2641,6 +2641,7 @@ out:
+@@ -2649,6 +2649,7 @@ out:
static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
{
@@ -77783,7 +77730,7 @@ index 4f2c0df..a1a00a5 100644
struct sock_exterr_skb *serr;
struct sk_buff *skb, *skb2;
int copied, err;
-@@ -2662,8 +2663,9 @@ static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
+@@ -2670,8 +2671,9 @@ static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
sock_recv_timestamp(msg, sk, skb);
serr = SKB_EXT_ERR(skb);
@@ -77794,7 +77741,7 @@ index 4f2c0df..a1a00a5 100644
msg->msg_flags |= MSG_ERRQUEUE;
err = copied;
-@@ -3294,7 +3296,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3302,7 +3304,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
case PACKET_HDRLEN:
if (len > sizeof(int))
len = sizeof(int);
@@ -77803,7 +77750,7 @@ index 4f2c0df..a1a00a5 100644
return -EFAULT;
switch (val) {
case TPACKET_V1:
-@@ -3344,7 +3346,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3352,7 +3354,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
if (put_user(len, optlen))
return -EFAULT;
@@ -78012,27 +77959,6 @@ index 4503335..db566b4 100644
}
#endif
-diff --git a/net/rds/recv.c b/net/rds/recv.c
-index 5c6e9f1..9f0f17c 100644
---- a/net/rds/recv.c
-+++ b/net/rds/recv.c
-@@ -410,6 +410,8 @@ int rds_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
-
- rdsdebug("size %zu flags 0x%x timeo %ld\n", size, msg_flags, timeo);
-
-+ msg->msg_namelen = 0;
-+
- if (msg_flags & MSG_OOB)
- goto out;
-
-@@ -485,6 +487,7 @@ int rds_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
- sin->sin_port = inc->i_hdr.h_sport;
- sin->sin_addr.s_addr = inc->i_saddr;
- memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
-+ msg->msg_namelen = sizeof(*sin);
- }
- break;
- }
diff --git a/net/rds/tcp.c b/net/rds/tcp.c
index edac9ef..16bcb98 100644
--- a/net/rds/tcp.c
@@ -78347,7 +78273,7 @@ index dba20d6..9fa89aa 100644
return -EFAULT;
to += addrlen;
diff --git a/net/socket.c b/net/socket.c
-index 06ffa0f..aff61b1 100644
+index dab3176..bea91b3 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -88,6 +88,7 @@
@@ -78518,7 +78444,7 @@ index 06ffa0f..aff61b1 100644
uaddr_len = COMPAT_NAMELEN(msg);
if (MSG_CMSG_COMPAT & flags) {
err = verify_compat_iovec(msg_sys, iov, &addr, VERIFY_WRITE);
-@@ -2761,7 +2821,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
+@@ -2762,7 +2822,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
}
ifr = compat_alloc_user_space(buf_size);
@@ -78527,7 +78453,7 @@ index 06ffa0f..aff61b1 100644
if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
return -EFAULT;
-@@ -2785,12 +2845,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
+@@ -2786,12 +2846,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
offsetof(struct ethtool_rxnfc, fs.ring_cookie));
if (copy_in_user(rxnfc, compat_rxnfc,
@@ -78544,7 +78470,7 @@ index 06ffa0f..aff61b1 100644
copy_in_user(&rxnfc->rule_cnt, &compat_rxnfc->rule_cnt,
sizeof(rxnfc->rule_cnt)))
return -EFAULT;
-@@ -2802,12 +2862,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
+@@ -2803,12 +2863,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
if (convert_out) {
if (copy_in_user(compat_rxnfc, rxnfc,
@@ -78561,7 +78487,7 @@ index 06ffa0f..aff61b1 100644
copy_in_user(&compat_rxnfc->rule_cnt, &rxnfc->rule_cnt,
sizeof(rxnfc->rule_cnt)))
return -EFAULT;
-@@ -2877,7 +2937,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
+@@ -2878,7 +2938,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
old_fs = get_fs();
set_fs(KERNEL_DS);
err = dev_ioctl(net, cmd,
@@ -78570,7 +78496,7 @@ index 06ffa0f..aff61b1 100644
set_fs(old_fs);
return err;
-@@ -2986,7 +3046,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
+@@ -2987,7 +3047,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
old_fs = get_fs();
set_fs(KERNEL_DS);
@@ -78579,7 +78505,7 @@ index 06ffa0f..aff61b1 100644
set_fs(old_fs);
if (cmd == SIOCGIFMAP && !err) {
-@@ -3091,7 +3151,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
+@@ -3092,7 +3152,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
ret |= __get_user(rtdev, &(ur4->rt_dev));
if (rtdev) {
ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
@@ -78588,7 +78514,7 @@ index 06ffa0f..aff61b1 100644
devname[15] = 0;
} else
r4.rt_dev = NULL;
-@@ -3317,8 +3377,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
+@@ -3318,8 +3378,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
int __user *uoptlen;
int err;
@@ -78599,7 +78525,7 @@ index 06ffa0f..aff61b1 100644
set_fs(KERNEL_DS);
if (level == SOL_SOCKET)
-@@ -3338,7 +3398,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
+@@ -3339,7 +3399,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
char __user *uoptval;
int err;
@@ -78899,7 +78825,7 @@ index b2964e9..fdf2e27 100644
sub->evt.event = htohl(event, sub->swap);
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
-index d510353..26c8a32 100644
+index 109e30b..8823015 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -779,6 +779,12 @@ static struct sock *unix_find_other(struct net *net,
@@ -87895,7 +87821,7 @@ index 0000000..38d2014
+ return 0;
+}
diff --git a/tools/perf/util/include/asm/alternative-asm.h b/tools/perf/util/include/asm/alternative-asm.h
-index 6789d78..4afd019 100644
+index 6789d78..4afd019e 100644
--- a/tools/perf/util/include/asm/alternative-asm.h
+++ b/tools/perf/util/include/asm/alternative-asm.h
@@ -5,4 +5,7 @@