From bf0f2c267bded767d2288c56d460c5dc8feed141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ertu=C4=9Frul=20Erata?= Date: Tue, 2 Feb 2016 11:11:13 +0200 Subject: [PATCH] works for 4.4.1 --- .../kernel/files/configs/kernel-x86_64-config | 17 +-- .../kernel/files/patches/linux/patch-4.4.1.xz | Bin 0 -> 23612 bytes .../mageia/fs-ovl-allow-zero-size-xattr.patch | 31 +++++ ...-positiveness-in-ovl_cleanup_whiteou.patch | 44 ++++++++ ...-super-block-magic-number-to-magic.h.patch | 46 ++++++++ .../mageia/fs-ovl-root-copy-attr.patch | 33 ++++++ ...ttr-check-permissions-before-copy-up.patch | 65 +++++++++++ ...e-a-minimal-buffer-in-ovl_copy_xattr.patch | 89 +++++++++++++++ ...rop-unnecessary-unsigned-int-0-check.patch | 34 ++++++ ...Update-radeon_get_vblank_counter_kms.patch | 106 ++++++++++++++++++ ...ing-ref-leak-in-join_session_keyring.patch | 82 -------------- kernel/kernel/files/patches/mageia/series | 15 ++- kernel/kernel/pspec.xml | 24 +++- 13 files changed, 490 insertions(+), 96 deletions(-) create mode 100644 kernel/kernel/files/patches/linux/patch-4.4.1.xz create mode 100644 kernel/kernel/files/patches/mageia/fs-ovl-allow-zero-size-xattr.patch create mode 100644 kernel/kernel/files/patches/mageia/fs-ovl-check-dentry-positiveness-in-ovl_cleanup_whiteou.patch create mode 100644 kernel/kernel/files/patches/mageia/fs-ovl-move-super-block-magic-number-to-magic.h.patch create mode 100644 kernel/kernel/files/patches/mageia/fs-ovl-root-copy-attr.patch create mode 100644 kernel/kernel/files/patches/mageia/fs-ovl-setattr-check-permissions-before-copy-up.patch create mode 100644 kernel/kernel/files/patches/mageia/fs-ovl-use-a-minimal-buffer-in-ovl_copy_xattr.patch create mode 100644 kernel/kernel/files/patches/mageia/gpu-drm-radeon-Drop-unnecessary-unsigned-int-0-check.patch create mode 100644 kernel/kernel/files/patches/mageia/gpu-drm-radeon-Update-radeon_get_vblank_counter_kms.patch delete mode 100644 kernel/kernel/files/patches/mageia/keys-fix-keyring-ref-leak-in-join_session_keyring.patch diff --git a/kernel/kernel/files/configs/kernel-x86_64-config b/kernel/kernel/files/configs/kernel-x86_64-config index 13f209a1..b3d3edeb 100644 --- a/kernel/kernel/files/configs/kernel-x86_64-config +++ b/kernel/kernel/files/configs/kernel-x86_64-config @@ -173,7 +173,7 @@ CONFIG_CGROUP_WRITEBACK=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set +CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y CONFIG_SCHED_AUTOGROUP=y @@ -644,16 +644,16 @@ CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # # CPU frequency scaling drivers @@ -1365,7 +1365,7 @@ CONFIG_HSR=m CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y -# CONFIG_CGROUP_NET_PRIO is not set +CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y @@ -5806,7 +5806,8 @@ CONFIG_EXT2_FS_XATTR=y # CONFIG_EXT2_FS_POSIX_ACL is not set CONFIG_EXT2_FS_SECURITY=y CONFIG_EXT3_FS=m -# CONFIG_EXT3_FS_POSIX_ACL is not set +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_SECURITY=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y diff --git a/kernel/kernel/files/patches/linux/patch-4.4.1.xz b/kernel/kernel/files/patches/linux/patch-4.4.1.xz new file mode 100644 index 0000000000000000000000000000000000000000..7a414d5bcbf33d52a2c51d4ed3aaa609e8777c8c GIT binary patch literal 23612 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 TqI3{0vBYQl0ssI200dcDlouY% literal 0 HcmV?d00001 diff --git a/kernel/kernel/files/patches/mageia/fs-ovl-allow-zero-size-xattr.patch b/kernel/kernel/files/patches/mageia/fs-ovl-allow-zero-size-xattr.patch new file mode 100644 index 00000000..e506728f --- /dev/null +++ b/kernel/kernel/files/patches/mageia/fs-ovl-allow-zero-size-xattr.patch @@ -0,0 +1,31 @@ +From 97daf8b97ad6f913a34c82515be64dc9ac08d63e Mon Sep 17 00:00:00 2001 +From: Miklos Szeredi +Date: Tue, 10 Nov 2015 17:08:41 +0100 +Subject: [PATCH 1/6] ovl: allow zero size xattr + +When ovl_copy_xattr() encountered a zero size xattr no more xattrs were +copied and the function returned success. This is clearly not the desired +behavior. + +Signed-off-by: Miklos Szeredi +Cc: +--- + fs/overlayfs/copy_up.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c +index 871fcb6..394e87f 100644 +--- a/fs/overlayfs/copy_up.c ++++ b/fs/overlayfs/copy_up.c +@@ -54,7 +54,7 @@ int ovl_copy_xattr(struct dentry *old, struct dentry *new) + + for (name = buf; name < (buf + list_size); name += strlen(name) + 1) { + size = vfs_getxattr(old, name, value, XATTR_SIZE_MAX); +- if (size <= 0) { ++ if (size < 0) { + error = size; + goto out_free_value; + } +-- +2.7.0 + diff --git a/kernel/kernel/files/patches/mageia/fs-ovl-check-dentry-positiveness-in-ovl_cleanup_whiteou.patch b/kernel/kernel/files/patches/mageia/fs-ovl-check-dentry-positiveness-in-ovl_cleanup_whiteou.patch new file mode 100644 index 00000000..d2c30236 --- /dev/null +++ b/kernel/kernel/files/patches/mageia/fs-ovl-check-dentry-positiveness-in-ovl_cleanup_whiteou.patch @@ -0,0 +1,44 @@ +From 84889d49335627bc770b32787c1ef9ebad1da232 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 16 Nov 2015 18:44:11 +0300 +Subject: [PATCH 6/6] ovl: check dentry positiveness in ovl_cleanup_whiteouts() + +This patch fixes kernel crash at removing directory which contains +whiteouts from lower layers. + +Cache of directory content passed as "list" contains entries from all +layers, including whiteouts from lower layers. So, lookup in upper dir +(moved into work at this stage) will return negative entry. Plus this +cache is filled long before and we can race with external removal. + +Example: + mkdir -p lower0/dir lower1/dir upper work overlay + touch lower0/dir/a lower0/dir/b + mknod lower1/dir/a c 0 0 + mount -t overlay none overlay -o lowerdir=lower1:lower0,upperdir=upper,workdir=work + rm -fr overlay/dir + +Signed-off-by: Konstantin Khlebnikov +Signed-off-by: Miklos Szeredi +Cc: # 3.18+ +--- + fs/overlayfs/readdir.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c +index 70e9af5..adcb139 100644 +--- a/fs/overlayfs/readdir.c ++++ b/fs/overlayfs/readdir.c +@@ -571,7 +571,8 @@ void ovl_cleanup_whiteouts(struct dentry *upper, struct list_head *list) + (int) PTR_ERR(dentry)); + continue; + } +- ovl_cleanup(upper->d_inode, dentry); ++ if (dentry->d_inode) ++ ovl_cleanup(upper->d_inode, dentry); + dput(dentry); + } + mutex_unlock(&upper->d_inode->i_mutex); +-- +2.7.0 + diff --git a/kernel/kernel/files/patches/mageia/fs-ovl-move-super-block-magic-number-to-magic.h.patch b/kernel/kernel/files/patches/mageia/fs-ovl-move-super-block-magic-number-to-magic.h.patch new file mode 100644 index 00000000..87d5c18f --- /dev/null +++ b/kernel/kernel/files/patches/mageia/fs-ovl-move-super-block-magic-number-to-magic.h.patch @@ -0,0 +1,46 @@ +From 257f871993474e2bde6c497b54022c362cf398e1 Mon Sep 17 00:00:00 2001 +From: Stephen Hemminger +Date: Wed, 4 Nov 2015 10:59:52 -0800 +Subject: [PATCH 3/6] ovl: move super block magic number to magic.h + +The overlayfs file system is not recognized by programs +like tail because the magic number is not in standard header location. + +Move it so that the value will propagate on for the GNU library +and utilities. Needs to go in the fstatfs manual page as well. + +Signed-off-by: Stephen Hemminger +Signed-off-by: Miklos Szeredi +--- + fs/overlayfs/super.c | 2 -- + include/uapi/linux/magic.h | 1 + + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c +index 97cacb5..32f3124 100644 +--- a/fs/overlayfs/super.c ++++ b/fs/overlayfs/super.c +@@ -24,8 +24,6 @@ MODULE_AUTHOR("Miklos Szeredi "); + MODULE_DESCRIPTION("Overlay filesystem"); + MODULE_LICENSE("GPL"); + +-#define OVERLAYFS_SUPER_MAGIC 0x794c7630 +- + struct ovl_config { + char *lowerdir; + char *upperdir; +diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h +index 7b1425a..eec4389 100644 +--- a/include/uapi/linux/magic.h ++++ b/include/uapi/linux/magic.h +@@ -31,6 +31,7 @@ + #define PSTOREFS_MAGIC 0x6165676C + #define EFIVARFS_MAGIC 0xde5e81e4 + #define HOSTFS_SUPER_MAGIC 0x00c0ffee ++#define OVERLAYFS_SUPER_MAGIC 0x794c7630 + + #define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */ + #define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */ +-- +2.7.0 + diff --git a/kernel/kernel/files/patches/mageia/fs-ovl-root-copy-attr.patch b/kernel/kernel/files/patches/mageia/fs-ovl-root-copy-attr.patch new file mode 100644 index 00000000..73613b7e --- /dev/null +++ b/kernel/kernel/files/patches/mageia/fs-ovl-root-copy-attr.patch @@ -0,0 +1,33 @@ +From ed06e069775ad9236087594a1c1667367e983fb5 Mon Sep 17 00:00:00 2001 +From: Miklos Szeredi +Date: Wed, 9 Dec 2015 16:11:59 +0100 +Subject: [PATCH 4/6] ovl: root: copy attr + +We copy i_uid and i_gid of underlying inode into overlayfs inode. Except +for the root inode. + +Fix this omission. + +Signed-off-by: Miklos Szeredi +Cc: +--- + fs/overlayfs/super.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c +index 32f3124..ec31711 100644 +--- a/fs/overlayfs/super.c ++++ b/fs/overlayfs/super.c +@@ -1079,6 +1079,9 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent) + + root_dentry->d_fsdata = oe; + ++ ovl_copyattr(ovl_dentry_real(root_dentry)->d_inode, ++ root_dentry->d_inode); ++ + sb->s_magic = OVERLAYFS_SUPER_MAGIC; + sb->s_op = &ovl_super_operations; + sb->s_root = root_dentry; +-- +2.7.0 + diff --git a/kernel/kernel/files/patches/mageia/fs-ovl-setattr-check-permissions-before-copy-up.patch b/kernel/kernel/files/patches/mageia/fs-ovl-setattr-check-permissions-before-copy-up.patch new file mode 100644 index 00000000..91014154 --- /dev/null +++ b/kernel/kernel/files/patches/mageia/fs-ovl-setattr-check-permissions-before-copy-up.patch @@ -0,0 +1,65 @@ +From cf9a6784f7c1b5ee2b9159a1246e327c331c5697 Mon Sep 17 00:00:00 2001 +From: Miklos Szeredi +Date: Fri, 11 Dec 2015 16:30:49 +0100 +Subject: [PATCH 5/6] ovl: setattr: check permissions before copy-up + +Without this copy-up of a file can be forced, even without actually being +allowed to do anything on the file. + +[Arnd Bergmann] include for PAGE_CACHE_SIZE (used by +MAX_LFS_FILESIZE definition). + +Signed-off-by: Miklos Szeredi +Cc: +--- + fs/overlayfs/inode.c | 13 +++++++++++++ + fs/overlayfs/super.c | 2 ++ + 2 files changed, 15 insertions(+) + +diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c +index 7654631..213a726 100644 +--- a/fs/overlayfs/inode.c ++++ b/fs/overlayfs/inode.c +@@ -45,6 +45,19 @@ int ovl_setattr(struct dentry *dentry, struct iattr *attr) + int err; + struct dentry *upperdentry; + ++ /* ++ * Check for permissions before trying to copy-up. This is redundant ++ * since it will be rechecked later by ->setattr() on upper dentry. But ++ * without this, copy-up can be triggered by just about anybody. ++ * ++ * We don't initialize inode->size, which just means that ++ * inode_newsize_ok() will always check against MAX_LFS_FILESIZE and not ++ * check for a swapfile (which this won't be anyway). ++ */ ++ err = inode_change_ok(dentry->d_inode, attr); ++ if (err) ++ return err; ++ + err = ovl_want_write(dentry); + if (err) + goto out; +diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c +index ec31711..b08bf4d 100644 +--- a/fs/overlayfs/super.c ++++ b/fs/overlayfs/super.c +@@ -9,6 +9,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -936,6 +937,7 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent) + } + + sb->s_stack_depth = 0; ++ sb->s_maxbytes = MAX_LFS_FILESIZE; + if (ufs->config.upperdir) { + if (!ufs->config.workdir) { + pr_err("overlayfs: missing 'workdir'\n"); +-- +2.7.0 + diff --git a/kernel/kernel/files/patches/mageia/fs-ovl-use-a-minimal-buffer-in-ovl_copy_xattr.patch b/kernel/kernel/files/patches/mageia/fs-ovl-use-a-minimal-buffer-in-ovl_copy_xattr.patch new file mode 100644 index 00000000..59eb828b --- /dev/null +++ b/kernel/kernel/files/patches/mageia/fs-ovl-use-a-minimal-buffer-in-ovl_copy_xattr.patch @@ -0,0 +1,89 @@ +From e4ad29fa0d224d05e08b2858e65f112fd8edd4fe Mon Sep 17 00:00:00 2001 +From: Vito Caputo +Date: Sat, 24 Oct 2015 07:19:46 -0500 +Subject: [PATCH 2/6] ovl: use a minimal buffer in ovl_copy_xattr + +Rather than always allocating the high-order XATTR_SIZE_MAX buffer +which is costly and prone to failure, only allocate what is needed and +realloc if necessary. + +Fixes https://github.com/coreos/bugs/issues/489 + +Signed-off-by: Miklos Szeredi +Cc: +--- + fs/overlayfs/copy_up.c | 39 +++++++++++++++++++++++++-------------- + 1 file changed, 25 insertions(+), 14 deletions(-) + +diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c +index 394e87f..758012b 100644 +--- a/fs/overlayfs/copy_up.c ++++ b/fs/overlayfs/copy_up.c +@@ -22,9 +22,9 @@ + + int ovl_copy_xattr(struct dentry *old, struct dentry *new) + { +- ssize_t list_size, size; +- char *buf, *name, *value; +- int error; ++ ssize_t list_size, size, value_size = 0; ++ char *buf, *name, *value = NULL; ++ int uninitialized_var(error); + + if (!old->d_inode->i_op->getxattr || + !new->d_inode->i_op->getxattr) +@@ -41,29 +41,40 @@ int ovl_copy_xattr(struct dentry *old, struct dentry *new) + if (!buf) + return -ENOMEM; + +- error = -ENOMEM; +- value = kmalloc(XATTR_SIZE_MAX, GFP_KERNEL); +- if (!value) +- goto out; +- + list_size = vfs_listxattr(old, buf, list_size); + if (list_size <= 0) { + error = list_size; +- goto out_free_value; ++ goto out; + } + + for (name = buf; name < (buf + list_size); name += strlen(name) + 1) { +- size = vfs_getxattr(old, name, value, XATTR_SIZE_MAX); ++retry: ++ size = vfs_getxattr(old, name, value, value_size); ++ if (size == -ERANGE) ++ size = vfs_getxattr(old, name, NULL, 0); ++ + if (size < 0) { + error = size; +- goto out_free_value; ++ break; ++ } ++ ++ if (size > value_size) { ++ void *new; ++ ++ new = krealloc(value, size, GFP_KERNEL); ++ if (!new) { ++ error = -ENOMEM; ++ break; ++ } ++ value = new; ++ value_size = size; ++ goto retry; + } ++ + error = vfs_setxattr(new, name, value, size, 0); + if (error) +- goto out_free_value; ++ break; + } +- +-out_free_value: + kfree(value); + out: + kfree(buf); +-- +2.7.0 + diff --git a/kernel/kernel/files/patches/mageia/gpu-drm-radeon-Drop-unnecessary-unsigned-int-0-check.patch b/kernel/kernel/files/patches/mageia/gpu-drm-radeon-Drop-unnecessary-unsigned-int-0-check.patch new file mode 100644 index 00000000..3303a75a --- /dev/null +++ b/kernel/kernel/files/patches/mageia/gpu-drm-radeon-Drop-unnecessary-unsigned-int-0-check.patch @@ -0,0 +1,34 @@ +From 85a21eafbc2218ffba59b1dda2ce9d7148bf43d2 Mon Sep 17 00:00:00 2001 +From: Thierry Reding +Date: Mon, 4 Jan 2016 18:19:12 +0100 +Subject: [PATCH] drm/radeon: Drop unnecessary unsigned int < 0 check +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Unsigned integers can never be negative, so drop this check. + +Cc: Christian König +Cc: Alex Deucher +Signed-off-by: Thierry Reding +Signed-off-by: Alex Deucher +--- + drivers/gpu/drm/radeon/radeon_kms.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c +index 4fab44e..414953c 100644 +--- a/drivers/gpu/drm/radeon/radeon_kms.c ++++ b/drivers/gpu/drm/radeon/radeon_kms.c +@@ -759,7 +759,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe) + u32 count; + struct radeon_device *rdev = dev->dev_private; + +- if (pipe < 0 || pipe >= rdev->num_crtc) { ++ if (pipe >= rdev->num_crtc) { + DRM_ERROR("Invalid crtc %u\n", pipe); + return -EINVAL; + } +-- +2.3.10 + diff --git a/kernel/kernel/files/patches/mageia/gpu-drm-radeon-Update-radeon_get_vblank_counter_kms.patch b/kernel/kernel/files/patches/mageia/gpu-drm-radeon-Update-radeon_get_vblank_counter_kms.patch new file mode 100644 index 00000000..28fe862a --- /dev/null +++ b/kernel/kernel/files/patches/mageia/gpu-drm-radeon-Update-radeon_get_vblank_counter_kms.patch @@ -0,0 +1,106 @@ +From 4e926d2db58244fca9845c78a5d6f873ac73795b Mon Sep 17 00:00:00 2001 +From: Thierry Reding +Date: Wed, 16 Dec 2015 15:31:47 +0100 +Subject: [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Commit 88e72717c2de ("drm/irq: Use unsigned int pipe in public API") +updated the prototype of this function but not the implementation. This +wasn't noticed even through compile tests because the prototype is part +of the source file that uses it and hence the compiler won't know the +prototype when it compiles the implementation. + +The right thing would've been to move the prototype to a header that's +included in radeon_kms.c so that the implementation signature could be +checked against it, but the closest thing would've been radeon_drv.h +and including that results in a lot of build errors, so we'll leave it +as is for now. + +Cc: Christian König +Cc: Alex Deucher +Reviewed-by: Christian König +Signed-off-by: Thierry Reding +Signed-off-by: Alex Deucher +--- + drivers/gpu/drm/radeon/radeon_kms.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c +index d290a8a..4fab44e 100644 +--- a/drivers/gpu/drm/radeon/radeon_kms.c ++++ b/drivers/gpu/drm/radeon/radeon_kms.c +@@ -748,19 +748,19 @@ void radeon_driver_preclose_kms(struct drm_device *dev, + * radeon_get_vblank_counter_kms - get frame count + * + * @dev: drm dev pointer +- * @crtc: crtc to get the frame count from ++ * @pipe: crtc to get the frame count from + * + * Gets the frame count on the requested crtc (all asics). + * Returns frame count on success, -EINVAL on failure. + */ +-u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc) ++u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe) + { + int vpos, hpos, stat; + u32 count; + struct radeon_device *rdev = dev->dev_private; + +- if (crtc < 0 || crtc >= rdev->num_crtc) { +- DRM_ERROR("Invalid crtc %d\n", crtc); ++ if (pipe < 0 || pipe >= rdev->num_crtc) { ++ DRM_ERROR("Invalid crtc %u\n", pipe); + return -EINVAL; + } + +@@ -772,29 +772,29 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc) + * and start of vsync, so vpos >= 0 means to bump the hw frame counter + * result by 1 to give the proper appearance to caller. + */ +- if (rdev->mode_info.crtcs[crtc]) { ++ if (rdev->mode_info.crtcs[pipe]) { + /* Repeat readout if needed to provide stable result if + * we cross start of vsync during the queries. + */ + do { +- count = radeon_get_vblank_counter(rdev, crtc); ++ count = radeon_get_vblank_counter(rdev, pipe); + /* Ask radeon_get_crtc_scanoutpos to return vpos as + * distance to start of vblank, instead of regular + * vertical scanout pos. + */ + stat = radeon_get_crtc_scanoutpos( +- dev, crtc, GET_DISTANCE_TO_VBLANKSTART, ++ dev, pipe, GET_DISTANCE_TO_VBLANKSTART, + &vpos, &hpos, NULL, NULL, +- &rdev->mode_info.crtcs[crtc]->base.hwmode); +- } while (count != radeon_get_vblank_counter(rdev, crtc)); ++ &rdev->mode_info.crtcs[pipe]->base.hwmode); ++ } while (count != radeon_get_vblank_counter(rdev, pipe)); + + if (((stat & (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE)) != + (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE))) { + DRM_DEBUG_VBL("Query failed! stat %d\n", stat); + } + else { +- DRM_DEBUG_VBL("crtc %d: dist from vblank start %d\n", +- crtc, vpos); ++ DRM_DEBUG_VBL("crtc %u: dist from vblank start %d\n", ++ pipe, vpos); + + /* Bump counter if we are at >= leading edge of vblank, + * but before vsync where vpos would turn negative and +@@ -806,7 +806,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc) + } + else { + /* Fallback to use value as is. */ +- count = radeon_get_vblank_counter(rdev, crtc); ++ count = radeon_get_vblank_counter(rdev, pipe); + DRM_DEBUG_VBL("NULL mode info! Returned count may be wrong.\n"); + } + +-- +2.3.10 + diff --git a/kernel/kernel/files/patches/mageia/keys-fix-keyring-ref-leak-in-join_session_keyring.patch b/kernel/kernel/files/patches/mageia/keys-fix-keyring-ref-leak-in-join_session_keyring.patch deleted file mode 100644 index 6285e4cf..00000000 --- a/kernel/kernel/files/patches/mageia/keys-fix-keyring-ref-leak-in-join_session_keyring.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 23567fd052a9abb6d67fe8e7a9ccdd9800a540f2 Mon Sep 17 00:00:00 2001 -From: Yevgeny Pats -Date: Tue, 19 Jan 2016 22:09:04 +0000 -Subject: KEYS: Fix keyring ref leak in join_session_keyring() - -From: Yevgeny Pats - -commit 23567fd052a9abb6d67fe8e7a9ccdd9800a540f2 upstream. - -This fixes CVE-2016-0728. - -If a thread is asked to join as a session keyring the keyring that's already -set as its session, we leak a keyring reference. - -This can be tested with the following program: - - #include - #include - #include - #include - - int main(int argc, const char *argv[]) - { - int i = 0; - key_serial_t serial; - - serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, - "leaked-keyring"); - if (serial < 0) { - perror("keyctl"); - return -1; - } - - if (keyctl(KEYCTL_SETPERM, serial, - KEY_POS_ALL | KEY_USR_ALL) < 0) { - perror("keyctl"); - return -1; - } - - for (i = 0; i < 100; i++) { - serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, - "leaked-keyring"); - if (serial < 0) { - perror("keyctl"); - return -1; - } - } - - return 0; - } - -If, after the program has run, there something like the following line in -/proc/keys: - -3f3d898f I--Q--- 100 perm 3f3f0000 0 0 keyring leaked-keyring: empty - -with a usage count of 100 * the number of times the program has been run, -then the kernel is malfunctioning. If leaked-keyring has zero usages or -has been garbage collected, then the problem is fixed. - -Reported-by: Yevgeny Pats -Signed-off-by: David Howells -Acked-by: Don Zickus -Acked-by: Prarit Bhargava -Acked-by: Jarod Wilson -Signed-off-by: James Morris -Signed-off-by: Greg Kroah-Hartman - ---- - security/keys/process_keys.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/security/keys/process_keys.c -+++ b/security/keys/process_keys.c -@@ -794,6 +794,7 @@ long join_session_keyring(const char *na - ret = PTR_ERR(keyring); - goto error2; - } else if (keyring == new->session_keyring) { -+ key_put(keyring); - ret = 0; - goto error2; - } diff --git a/kernel/kernel/files/patches/mageia/series b/kernel/kernel/files/patches/mageia/series index 6c89e9a2..edc9f22b 100644 --- a/kernel/kernel/files/patches/mageia/series +++ b/kernel/kernel/files/patches/mageia/series @@ -133,6 +133,14 @@ ata-libata-disable-forced-PORTS_IMPL-for-AHCI-1.3.patch fs-aufs-4.4.patch fs-aufs-4.4-modular.patch +# ovl fixes +fs-ovl-allow-zero-size-xattr.patch +fs-ovl-use-a-minimal-buffer-in-ovl_copy_xattr.patch +fs-ovl-move-super-block-magic-number-to-magic.h.patch +fs-ovl-root-copy-attr.patch +fs-ovl-setattr-check-permissions-before-copy-up.patch +fs-ovl-check-dentry-positiveness-in-ovl_cleanup_whiteou.patch + ### ### FireWire ### @@ -188,6 +196,10 @@ gpu-drm-0107-drm-vc4-Add-support-for-drawing-3D-frames.patch gpu-drm-0108-drm-vc4-Add-support-for-async-pageflips.patch gpu-drm-0109-drm-vc4-Add-an-interface-for-capturing-the-GPU-state.patch +# radeon breakage fixes +gpu-drm-radeon-Update-radeon_get_vblank_counter_kms.patch +gpu-drm-radeon-Drop-unnecessary-unsigned-int-0-check.patch + ### ### Hardware Monitoring ### @@ -349,9 +361,6 @@ video-mageia-logo.patch ### Security ### -# CVE-2016-0728 -keys-fix-keyring-ref-leak-in-join_session_keyring.patch - ### ### Smack fixes ### diff --git a/kernel/kernel/pspec.xml b/kernel/kernel/pspec.xml index 27f3ebb9..f3ae3f4f 100644 --- a/kernel/kernel/pspec.xml +++ b/kernel/kernel/pspec.xml @@ -28,8 +28,8 @@ - - + patches/linux/patch-4.4.1.xz + patches/mageia/x86-pci-toshiba-equium-a60-assign-busses.patch @@ -59,6 +59,12 @@ patches/mageia/block-Make-CFQ-default-to-IOPS-mode-on-SSDs.patch patches/mageia/fs-aufs-4.4.patch patches/mageia/fs-aufs-4.4-modular.patch + patches/mageia/fs-ovl-allow-zero-size-xattr.patch + patches/mageia/fs-ovl-use-a-minimal-buffer-in-ovl_copy_xattr.patch + patches/mageia/fs-ovl-move-super-block-magic-number-to-magic.h.patch + patches/mageia/fs-ovl-root-copy-attr.patch + patches/mageia/fs-ovl-setattr-check-permissions-before-copy-up.patch + patches/mageia/fs-ovl-check-dentry-positiveness-in-ovl_cleanup_whiteou.patch patches/mageia/firewire-ieee1394-module-aliases.patch patches/mageia/char-agp-intel-new-Q57-id.patch patches/mageia/gpu-drm-mach64.patch @@ -94,6 +100,8 @@ patches/mageia/gpu-drm-0107-drm-vc4-Add-support-for-drawing-3D-frames.patch patches/mageia/gpu-drm-0108-drm-vc4-Add-support-for-async-pageflips.patch patches/mageia/gpu-drm-0109-drm-vc4-Add-an-interface-for-capturing-the-GPU-state.patch + patches/mageia/gpu-drm-radeon-Update-radeon_get_vblank_counter_kms.patch + patches/mageia/gpu-drm-radeon-Drop-unnecessary-unsigned-int-0-check.patch patches/mageia/input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch patches/mageia/net-sis190-fix-list-usage.patch patches/mageia/net-netfilter-IFWLOG.patch @@ -142,7 +150,6 @@ patches/mageia/3rd-rtl8723bs.patch patches/mageia/ahci-add-new-Intel-device-IDs.patch patches/mageia/ata-libata-disable-forced-PORTS_IMPL-for-AHCI-1.3.patch - patches/mageia/keys-fix-keyring-ref-leak-in-join_session_keyring.patch patches/mageia/arm-0001-dt-bindings-Add-root-properties-for-Raspberry-Pi-2.patch patches/mageia/arm-0002-ARM-bcm2835-Add-a-compat-string-for-bcm2836-machine-.patch patches/mageia/arm-0003-ARM-bcm2835-Add-Kconfig-support-for-bcm2836.patch @@ -209,6 +216,17 @@ + + 2016-02-02 + 4.4.1 + Version bump to 4.4.1 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.1 + security + + systemRestart + + Ertuğrul Erata + ertugrulerata@gmail.com + 2016-01-30 4.4.0