diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2012-10-09 11:12:12 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2012-10-11 06:26:06 +0000 |
commit | 1d67e1e2397c244efb12be42244e2f4014314783 (patch) | |
tree | 220579c2f65b35b6797040c5129d5b52f2869c23 | |
parent | f3039bc4ab2622e832072fb547cfab4324d2a28e (diff) | |
download | aports-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/APKBUILD | 10 | ||||
-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 @@ |