Merge branch 'f22' of ssh://pkgs.fedoraproject.org/kernel into f22-pf - 4.1.9-200
This commit is contained in:
commit
bb43c377dd
|
@ -0,0 +1,86 @@
|
|||
From 680ac028240f8747f31c03986fbcf18b2b521e93 Mon Sep 17 00:00:00 2001
|
||||
From: Borislav Petkov <bp@suse.de>
|
||||
Date: Mon, 27 Jul 2015 09:58:05 +0200
|
||||
Subject: [PATCH] x86/cpu/cacheinfo: Fix teardown path
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Philip Müller reported a hang when booting 32-bit 4.1 kernel on
|
||||
an AMD box. A fragment of the splat was enough to pinpoint the
|
||||
issue:
|
||||
|
||||
task: f58e0000 ti: f58e8000 task.ti: f58e800
|
||||
EIP: 0060:[<c135a903>] EFLAGS: 00010206 CPU: 0
|
||||
EIP is at free_cache_attributes+0x83/0xd0
|
||||
EAX: 00000001 EBX: f589d46c ECX: 00000090 EDX: 360c2000
|
||||
ESI: 00000000 EDI: c1724a80 EBP: f58e9ec0 ESP: f58e9ea0
|
||||
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
|
||||
CR0: 8005003b CR2: 000000ac CR3: 01731000 CR4: 000006d0
|
||||
|
||||
cache_shared_cpu_map_setup() did check sibling CPUs cacheinfo
|
||||
descriptor while the respective teardown path
|
||||
cache_shared_cpu_map_remove() didn't. Fix that.
|
||||
|
||||
From tglx's version: to be on the safe side, move the cacheinfo
|
||||
descriptor check to free_cache_attributes(), thus cleaning up
|
||||
the hotplug path a little and making this even more robust.
|
||||
|
||||
Reported-by: Philip Müller <philm@manjaro.org>
|
||||
Signed-off-by: Borislav Petkov <bp@suse.de>
|
||||
Cc: <stable@vger.kernel.org> # v4.1+
|
||||
Cc: Andre Przywara <andre.przywara@arm.com>
|
||||
Cc: Guenter Roeck <linux@roeck-us.net>
|
||||
Cc: H. Peter Anvin <hpa@zytor.com>
|
||||
Cc: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Cc: Peter Zijlstra <peterz@infradead.org>
|
||||
Cc: Sudeep Holla <sudeep.holla@arm.com>
|
||||
Cc: Thomas Gleixner <tglx@linutronix.de>
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
Cc: manjaro-dev@manjaro.org
|
||||
Link: http://lkml.kernel.org/r/20150727075805.GA20416@nazgul.tnic
|
||||
Link: https://lkml.kernel.org/r/55B47BB8.6080202@manjaro.org
|
||||
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
||||
---
|
||||
drivers/base/cacheinfo.c | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/base/cacheinfo.c b/drivers/base/cacheinfo.c
|
||||
index 764280a91776..e9fd32e91668 100644
|
||||
--- a/drivers/base/cacheinfo.c
|
||||
+++ b/drivers/base/cacheinfo.c
|
||||
@@ -148,7 +148,11 @@ static void cache_shared_cpu_map_remove(unsigned int cpu)
|
||||
|
||||
if (sibling == cpu) /* skip itself */
|
||||
continue;
|
||||
+
|
||||
sib_cpu_ci = get_cpu_cacheinfo(sibling);
|
||||
+ if (!sib_cpu_ci->info_list)
|
||||
+ continue;
|
||||
+
|
||||
sib_leaf = sib_cpu_ci->info_list + index;
|
||||
cpumask_clear_cpu(cpu, &sib_leaf->shared_cpu_map);
|
||||
cpumask_clear_cpu(sibling, &this_leaf->shared_cpu_map);
|
||||
@@ -159,6 +163,9 @@ static void cache_shared_cpu_map_remove(unsigned int cpu)
|
||||
|
||||
static void free_cache_attributes(unsigned int cpu)
|
||||
{
|
||||
+ if (!per_cpu_cacheinfo(cpu))
|
||||
+ return;
|
||||
+
|
||||
cache_shared_cpu_map_remove(cpu);
|
||||
|
||||
kfree(per_cpu_cacheinfo(cpu));
|
||||
@@ -514,8 +521,7 @@ static int cacheinfo_cpu_callback(struct notifier_block *nfb,
|
||||
break;
|
||||
case CPU_DEAD:
|
||||
cache_remove_dev(cpu);
|
||||
- if (per_cpu_cacheinfo(cpu))
|
||||
- free_cache_attributes(cpu);
|
||||
+ free_cache_attributes(cpu);
|
||||
break;
|
||||
}
|
||||
return notifier_from_errno(rc);
|
||||
--
|
||||
2.4.3
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
From 74e98eb085889b0d2d4908f59f6e00026063014f Mon Sep 17 00:00:00 2001
|
||||
From: Sasha Levin <sasha.levin@oracle.com>
|
||||
Date: Tue, 8 Sep 2015 10:53:40 -0400
|
||||
Subject: [PATCH] RDS: verify the underlying transport exists before creating a
|
||||
connection
|
||||
|
||||
There was no verification that an underlying transport exists when creating
|
||||
a connection, this would cause dereferencing a NULL ptr.
|
||||
|
||||
It might happen on sockets that weren't properly bound before attempting to
|
||||
send a message, which will cause a NULL ptr deref:
|
||||
|
||||
[135546.047719] kasan: GPF could be caused by NULL-ptr deref or user memory accessgeneral protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC KASAN
|
||||
[135546.051270] Modules linked in:
|
||||
[135546.051781] CPU: 4 PID: 15650 Comm: trinity-c4 Not tainted 4.2.0-next-20150902-sasha-00041-gbaa1222-dirty #2527
|
||||
[135546.053217] task: ffff8800835bc000 ti: ffff8800bc708000 task.ti: ffff8800bc708000
|
||||
[135546.054291] RIP: __rds_conn_create (net/rds/connection.c:194)
|
||||
[135546.055666] RSP: 0018:ffff8800bc70fab0 EFLAGS: 00010202
|
||||
[135546.056457] RAX: dffffc0000000000 RBX: 0000000000000f2c RCX: ffff8800835bc000
|
||||
[135546.057494] RDX: 0000000000000007 RSI: ffff8800835bccd8 RDI: 0000000000000038
|
||||
[135546.058530] RBP: ffff8800bc70fb18 R08: 0000000000000001 R09: 0000000000000000
|
||||
[135546.059556] R10: ffffed014d7a3a23 R11: ffffed014d7a3a21 R12: 0000000000000000
|
||||
[135546.060614] R13: 0000000000000001 R14: ffff8801ec3d0000 R15: 0000000000000000
|
||||
[135546.061668] FS: 00007faad4ffb700(0000) GS:ffff880252000000(0000) knlGS:0000000000000000
|
||||
[135546.062836] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
|
||||
[135546.063682] CR2: 000000000000846a CR3: 000000009d137000 CR4: 00000000000006a0
|
||||
[135546.064723] Stack:
|
||||
[135546.065048] ffffffffafe2055c ffffffffafe23fc1 ffffed00493097bf ffff8801ec3d0008
|
||||
[135546.066247] 0000000000000000 00000000000000d0 0000000000000000 ac194a24c0586342
|
||||
[135546.067438] 1ffff100178e1f78 ffff880320581b00 ffff8800bc70fdd0 ffff880320581b00
|
||||
[135546.068629] Call Trace:
|
||||
[135546.069028] ? __rds_conn_create (include/linux/rcupdate.h:856 net/rds/connection.c:134)
|
||||
[135546.069989] ? rds_message_copy_from_user (net/rds/message.c:298)
|
||||
[135546.071021] rds_conn_create_outgoing (net/rds/connection.c:278)
|
||||
[135546.071981] rds_sendmsg (net/rds/send.c:1058)
|
||||
[135546.072858] ? perf_trace_lock (include/trace/events/lock.h:38)
|
||||
[135546.073744] ? lockdep_init (kernel/locking/lockdep.c:3298)
|
||||
[135546.074577] ? rds_send_drop_to (net/rds/send.c:976)
|
||||
[135546.075508] ? __might_fault (./arch/x86/include/asm/current.h:14 mm/memory.c:3795)
|
||||
[135546.076349] ? __might_fault (mm/memory.c:3795)
|
||||
[135546.077179] ? rds_send_drop_to (net/rds/send.c:976)
|
||||
[135546.078114] sock_sendmsg (net/socket.c:611 net/socket.c:620)
|
||||
[135546.078856] SYSC_sendto (net/socket.c:1657)
|
||||
[135546.079596] ? SYSC_connect (net/socket.c:1628)
|
||||
[135546.080510] ? trace_dump_stack (kernel/trace/trace.c:1926)
|
||||
[135546.081397] ? ring_buffer_unlock_commit (kernel/trace/ring_buffer.c:2479 kernel/trace/ring_buffer.c:2558 kernel/trace/ring_buffer.c:2674)
|
||||
[135546.082390] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749)
|
||||
[135546.083410] ? trace_event_raw_event_sys_enter (include/trace/events/syscalls.h:16)
|
||||
[135546.084481] ? do_audit_syscall_entry (include/trace/events/syscalls.h:16)
|
||||
[135546.085438] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749)
|
||||
[135546.085515] rds_ib_laddr_check(): addr 36.74.25.172 ret -99 node type -1
|
||||
|
||||
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
|
||||
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/rds/connection.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/net/rds/connection.c b/net/rds/connection.c
|
||||
index 9b2de5e67d79..49adeef8090c 100644
|
||||
--- a/net/rds/connection.c
|
||||
+++ b/net/rds/connection.c
|
||||
@@ -190,6 +190,12 @@ new_conn:
|
||||
}
|
||||
}
|
||||
|
||||
+ if (trans == NULL) {
|
||||
+ kmem_cache_free(rds_conn_slab, conn);
|
||||
+ conn = ERR_PTR(-ENODEV);
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
conn->c_trans = trans;
|
||||
|
||||
ret = trans->conn_alloc(conn, gfp);
|
||||
--
|
||||
2.4.3
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
From 10d98bced414c6fc1d09db123e7f762d91b5ebea Mon Sep 17 00:00:00 2001
|
||||
From: Johan Hovold <johan@kernel.org>
|
||||
Date: Wed, 23 Sep 2015 11:41:42 -0700
|
||||
Subject: [PATCH] USB: whiteheat: fix potential null-deref at probe
|
||||
|
||||
Fix potential null-pointer dereference at probe by making sure that the
|
||||
required endpoints are present.
|
||||
|
||||
The whiteheat driver assumes there are at least five pairs of bulk
|
||||
endpoints, of which the final pair is used for the "command port". An
|
||||
attempt to bind to an interface with fewer bulk endpoints would
|
||||
currently lead to an oops.
|
||||
|
||||
Fixes CVE-2015-5257.
|
||||
|
||||
Reported-by: Moein Ghasemzadeh <moein@istuary.com>
|
||||
Cc: stable <stable@vger.kernel.org>
|
||||
Signed-off-by: Johan Hovold <johan@kernel.org>
|
||||
---
|
||||
drivers/usb/serial/whiteheat.c | 31 +++++++++++++++++++++++++++++++
|
||||
1 file changed, 31 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/serial/whiteheat.c b/drivers/usb/serial/whiteheat.c
|
||||
index 6c3734d2b45a..d3ea90bef84d 100644
|
||||
--- a/drivers/usb/serial/whiteheat.c
|
||||
+++ b/drivers/usb/serial/whiteheat.c
|
||||
@@ -80,6 +80,8 @@ static int whiteheat_firmware_download(struct usb_serial *serial,
|
||||
static int whiteheat_firmware_attach(struct usb_serial *serial);
|
||||
|
||||
/* function prototypes for the Connect Tech WhiteHEAT serial converter */
|
||||
+static int whiteheat_probe(struct usb_serial *serial,
|
||||
+ const struct usb_device_id *id);
|
||||
static int whiteheat_attach(struct usb_serial *serial);
|
||||
static void whiteheat_release(struct usb_serial *serial);
|
||||
static int whiteheat_port_probe(struct usb_serial_port *port);
|
||||
@@ -116,6 +118,7 @@ static struct usb_serial_driver whiteheat_device = {
|
||||
.description = "Connect Tech - WhiteHEAT",
|
||||
.id_table = id_table_std,
|
||||
.num_ports = 4,
|
||||
+ .probe = whiteheat_probe,
|
||||
.attach = whiteheat_attach,
|
||||
.release = whiteheat_release,
|
||||
.port_probe = whiteheat_port_probe,
|
||||
@@ -217,6 +220,34 @@ static int whiteheat_firmware_attach(struct usb_serial *serial)
|
||||
/*****************************************************************************
|
||||
* Connect Tech's White Heat serial driver functions
|
||||
*****************************************************************************/
|
||||
+
|
||||
+static int whiteheat_probe(struct usb_serial *serial,
|
||||
+ const struct usb_device_id *id)
|
||||
+{
|
||||
+ struct usb_host_interface *iface_desc;
|
||||
+ struct usb_endpoint_descriptor *endpoint;
|
||||
+ size_t num_bulk_in = 0;
|
||||
+ size_t num_bulk_out = 0;
|
||||
+ size_t min_num_bulk;
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ iface_desc = serial->interface->cur_altsetting;
|
||||
+
|
||||
+ for (i = 0; i < iface_desc->desc.bNumEndpoints; i++) {
|
||||
+ endpoint = &iface_desc->endpoint[i].desc;
|
||||
+ if (usb_endpoint_is_bulk_in(endpoint))
|
||||
+ ++num_bulk_in;
|
||||
+ if (usb_endpoint_is_bulk_out(endpoint))
|
||||
+ ++num_bulk_out;
|
||||
+ }
|
||||
+
|
||||
+ min_num_bulk = COMMAND_PORT + 1;
|
||||
+ if (num_bulk_in < min_num_bulk || num_bulk_out < min_num_bulk)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int whiteheat_attach(struct usb_serial *serial)
|
||||
{
|
||||
struct usb_serial_port *command_port;
|
||||
--
|
||||
2.4.3
|
||||
|
|
@ -24,6 +24,7 @@ CONFIG_ARM64_ERRATUM_827319=y
|
|||
CONFIG_ARM64_ERRATUM_824069=y
|
||||
CONFIG_ARM64_ERRATUM_819472=y
|
||||
CONFIG_ARM64_ERRATUM_832075=y
|
||||
CONFIG_ARM64_ERRATUM_843419=y
|
||||
|
||||
# CONFIG_AMBA_PL08X is not set
|
||||
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||
|
|
|
@ -1,148 +0,0 @@
|
|||
From 9851cf5d02703ab60b58a2335481cc195c72ff9c Mon Sep 17 00:00:00 2001
|
||||
From: Jonathon Jongsma <jjongsma@redhat.com>
|
||||
Date: Thu, 20 Aug 2015 12:04:32 -0700
|
||||
Subject: [PATCH] drm/qxl: validate monitors config modes
|
||||
|
||||
Due to some recent changes in
|
||||
drm_helper_probe_single_connector_modes_merge_bits(), old custom modes
|
||||
were not being pruned properly. In current kernels,
|
||||
drm_mode_validate_basic() is called to sanity-check each mode in the
|
||||
list. If the sanity-check passes, the mode's status gets set to to
|
||||
MODE_OK. In older kernels this check was not done, so old custom modes
|
||||
would still have a status of MODE_UNVERIFIED at this point, and would
|
||||
therefore be pruned later in the function.
|
||||
|
||||
As a result of this new behavior, the list of modes for a device always
|
||||
includes every custom mode ever configured for the device, with the
|
||||
largest one listed first. Since desktop environments usually choose the
|
||||
first preferred mode when a hotplug event is emitted, this had the
|
||||
result of making it very difficult for the user to reduce the size of
|
||||
the display.
|
||||
|
||||
The qxl driver did implement the mode_valid connector function, but it
|
||||
was empty. In order to restore the old behavior where old custom modes
|
||||
are pruned, we implement a proper mode_valid function for the qxl
|
||||
driver. This function now checks each mode against the last configured
|
||||
custom mode and the list of standard modes. If the mode doesn't match
|
||||
any of these, its status is set to MODE_BAD so that it will be pruned as
|
||||
expected.
|
||||
|
||||
Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
|
||||
Cc: stable at vger.kernel.org
|
||||
---
|
||||
drivers/gpu/drm/qxl/qxl_display.c | 66 ++++++++++++++++++++++++---------------
|
||||
drivers/gpu/drm/qxl/qxl_drv.h | 2 ++
|
||||
2 files changed, 42 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
|
||||
index a8dbb3ef4e3c..7c6225c84ba6 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_display.c
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_display.c
|
||||
@@ -160,9 +160,35 @@ static int qxl_add_monitors_config_modes(struct drm_connector *connector,
|
||||
*pwidth = head->width;
|
||||
*pheight = head->height;
|
||||
drm_mode_probed_add(connector, mode);
|
||||
+ /* remember the last custom size for mode validation */
|
||||
+ qdev->monitors_config_width = mode->hdisplay;
|
||||
+ qdev->monitors_config_height = mode->vdisplay;
|
||||
return 1;
|
||||
}
|
||||
|
||||
+static struct mode_size {
|
||||
+ int w;
|
||||
+ int h;
|
||||
+} common_modes[] = {
|
||||
+ { 640, 480},
|
||||
+ { 720, 480},
|
||||
+ { 800, 600},
|
||||
+ { 848, 480},
|
||||
+ {1024, 768},
|
||||
+ {1152, 768},
|
||||
+ {1280, 720},
|
||||
+ {1280, 800},
|
||||
+ {1280, 854},
|
||||
+ {1280, 960},
|
||||
+ {1280, 1024},
|
||||
+ {1440, 900},
|
||||
+ {1400, 1050},
|
||||
+ {1680, 1050},
|
||||
+ {1600, 1200},
|
||||
+ {1920, 1080},
|
||||
+ {1920, 1200}
|
||||
+};
|
||||
+
|
||||
static int qxl_add_common_modes(struct drm_connector *connector,
|
||||
unsigned pwidth,
|
||||
unsigned pheight)
|
||||
@@ -170,29 +196,6 @@ static int qxl_add_common_modes(struct drm_connector *connector,
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct drm_display_mode *mode = NULL;
|
||||
int i;
|
||||
- struct mode_size {
|
||||
- int w;
|
||||
- int h;
|
||||
- } common_modes[] = {
|
||||
- { 640, 480},
|
||||
- { 720, 480},
|
||||
- { 800, 600},
|
||||
- { 848, 480},
|
||||
- {1024, 768},
|
||||
- {1152, 768},
|
||||
- {1280, 720},
|
||||
- {1280, 800},
|
||||
- {1280, 854},
|
||||
- {1280, 960},
|
||||
- {1280, 1024},
|
||||
- {1440, 900},
|
||||
- {1400, 1050},
|
||||
- {1680, 1050},
|
||||
- {1600, 1200},
|
||||
- {1920, 1080},
|
||||
- {1920, 1200}
|
||||
- };
|
||||
-
|
||||
for (i = 0; i < ARRAY_SIZE(common_modes); i++) {
|
||||
mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h,
|
||||
60, false, false, false);
|
||||
@@ -823,11 +826,22 @@ static int qxl_conn_get_modes(struct drm_connector *connector)
|
||||
static int qxl_conn_mode_valid(struct drm_connector *connector,
|
||||
struct drm_display_mode *mode)
|
||||
{
|
||||
+ struct drm_device *ddev = connector->dev;
|
||||
+ struct qxl_device *qdev = ddev->dev_private;
|
||||
+ int i;
|
||||
+
|
||||
/* TODO: is this called for user defined modes? (xrandr --add-mode)
|
||||
* TODO: check that the mode fits in the framebuffer */
|
||||
- DRM_DEBUG("%s: %dx%d status=%d\n", mode->name, mode->hdisplay,
|
||||
- mode->vdisplay, mode->status);
|
||||
- return MODE_OK;
|
||||
+
|
||||
+ if(qdev->monitors_config_width == mode->hdisplay &&
|
||||
+ qdev->monitors_config_height == mode->vdisplay)
|
||||
+ return MODE_OK;
|
||||
+
|
||||
+ for (i = 0; i < ARRAY_SIZE(common_modes); i++) {
|
||||
+ if (common_modes[i].w == mode->hdisplay && common_modes[i].h == mode->vdisplay)
|
||||
+ return MODE_OK;
|
||||
+ }
|
||||
+ return MODE_BAD;
|
||||
}
|
||||
|
||||
static struct drm_encoder *qxl_best_encoder(struct drm_connector *connector)
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
|
||||
index d8549690801d..01a86948eb8c 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_drv.h
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_drv.h
|
||||
@@ -325,6 +325,8 @@ struct qxl_device {
|
||||
struct work_struct fb_work;
|
||||
|
||||
struct drm_property *hotplug_mode_update_property;
|
||||
+ int monitors_config_width;
|
||||
+ int monitors_config_height;
|
||||
};
|
||||
|
||||
/* forward declaration for QXL_INFO_IO */
|
||||
--
|
||||
2.4.3
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
From: Eric Sandeen <sandeen@xxxxxxxxxx>
|
||||
Date: Wed, 05 Aug 2015 15:13:58 -0700
|
||||
Subject: [PATCH] ext4: don't manipulate recovery flag when freezing no-journal fs
|
||||
|
||||
At some point along this sequence of changes:
|
||||
|
||||
f6e63f9 ext4: fold ext4_nojournal_sops into ext4_sops
|
||||
bb04457 ext4: support freezing ext2 (nojournal) file systems
|
||||
9ca9238 ext4: Use separate super_operations structure for no_journal filesystems
|
||||
|
||||
ext4 started setting needs_recovery on filesystems without journals
|
||||
when they are unfrozen. This makes no sense, and in fact confuses
|
||||
blkid to the point where it doesn't recognize the filesystem at all.
|
||||
|
||||
(freeze ext2; unfreeze ext2; run blkid; see no output; run dumpe2fs,
|
||||
see needs_recovery set on fs w/ no journal).
|
||||
|
||||
To fix this, don't manipulate the INCOMPAT_RECOVER feature on
|
||||
filesystems without journals.
|
||||
|
||||
Reported-by: Stu Mark <smark@xxxxxxxxx>
|
||||
Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
|
||||
---
|
||||
|
||||
Note, is there a reason that in ext4_freeze, if journal_flush
|
||||
fails, we skip the ext4_commit_super call? I didn't change that
|
||||
here, but it seems odd.
|
||||
|
||||
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
|
||||
index 58987b5..e7b345d 100644
|
||||
--- a/fs/ext4/super.c
|
||||
+++ b/fs/ext4/super.c
|
||||
@@ -4833,10 +4833,11 @@ static int ext4_freeze(struct super_block *sb)
|
||||
error = jbd2_journal_flush(journal);
|
||||
if (error < 0)
|
||||
goto out;
|
||||
+
|
||||
+ /* Journal blocked and flushed, clear needs_recovery flag. */
|
||||
+ EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
|
||||
}
|
||||
|
||||
- /* Journal blocked and flushed, clear needs_recovery flag. */
|
||||
- EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
|
||||
error = ext4_commit_super(sb, 1);
|
||||
out:
|
||||
if (journal)
|
||||
@@ -4854,8 +4855,11 @@ static int ext4_unfreeze(struct super_block *sb)
|
||||
if (sb->s_flags & MS_RDONLY)
|
||||
return 0;
|
||||
|
||||
- /* Reset the needs_recovery flag before the fs is unlocked. */
|
||||
- EXT4_SET_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
|
||||
+ if (EXT4_SB(sb)->s_journal) {
|
||||
+ /* Reset the needs_recovery flag before the fs is unlocked. */
|
||||
+ EXT4_SET_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
|
||||
+ }
|
||||
+
|
||||
ext4_commit_super(sb, 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
|
||||
the body of a message to majordomo@xxxxxxxxxxxxxxx
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||
|
71
kernel.spec
71
kernel.spec
|
@ -40,7 +40,7 @@ Summary: The Linux kernel
|
|||
# For non-released -rc kernels, this will be appended after the rcX and
|
||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||
#
|
||||
%global baserelease 201
|
||||
%global baserelease 200
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
|
@ -52,8 +52,12 @@ Summary: The Linux kernel
|
|||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
<<<<<<< HEAD
|
||||
#+Hu Pf against 4.1.6 v4.1-pf4: https://pf.natalenko.name/forum/index.php?topic=345.0 (https://pf.natalenko.name/forum/index.php?topic=344.0)
|
||||
%define stable_update 6
|
||||
=======
|
||||
%define stable_update 9
|
||||
>>>>>>> 9048afa42fd63423120a692bfdd4720694d1d4e7
|
||||
# Set rpm version accordingly
|
||||
%if 0%{?stable_update}
|
||||
%define stablerev %{stable_update}
|
||||
|
@ -654,38 +658,34 @@ Patch26252: pcmcia-fix-a-boot-time-warning-in-pcmcia-cs-code.patch
|
|||
#rhbz 1244511
|
||||
Patch507: HID-chicony-Add-support-for-Acer-Aspire-Switch-12.patch
|
||||
|
||||
#rhbz 1251877 1251880 1250279 1248741
|
||||
# and probably more since ugh use after free bugs
|
||||
Patch26264: HID-hid-input-Fix-accessing-freed-memory-during-devi.patch
|
||||
|
||||
#rhbz 1239050
|
||||
Patch509: ideapad-laptop-Add-Lenovo-Yoga-3-14-to-no_hw_rfkill-.patch
|
||||
|
||||
#rhbz 1253789
|
||||
Patch511: iSCSI-let-session-recovery_tmo-sysfs-writes-persist.patch
|
||||
|
||||
#rhbz 1250717
|
||||
Patch512: ext4-dont-manipulate-recovery-flag-when-freezing.patch
|
||||
|
||||
#CVE-2015-6666 rhbz 1256746 1256753
|
||||
Patch513: Revert-sched-x86_64-Don-t-save-flags-on-context-swit.patch
|
||||
|
||||
#rhbz 1256281
|
||||
Patch26265: mmc-sdhci-fix-dma-memory-leak-in-sdhci_pre_req.patch
|
||||
|
||||
#rhbz 1224764
|
||||
Patch26266: x86-apic-Fix-fallout-from-x2apic-cleanup.patch
|
||||
|
||||
#rhbz 1257534
|
||||
Patch515: nv46-Change-mc-subdev-oclass-from-nv44-to-nv4c.patch
|
||||
|
||||
#rhbz 1212201
|
||||
Patch514: drm-qxl-validate-monitors-config-modes.patch
|
||||
|
||||
#rhbz 1257500
|
||||
Patch517: vmwgfx-Rework-device-initialization.patch
|
||||
Patch518: drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch
|
||||
|
||||
#CVE-2015-6937 rhbz 1263139 1263140
|
||||
Patch523: RDS-verify-the-underlying-transport-exists-before-cr.patch
|
||||
|
||||
#rhbz 1263762
|
||||
Patch526: 0001-x86-cpu-cacheinfo-Fix-teardown-path.patch
|
||||
|
||||
#CVE-2015-5257 rhbz 1265607 1265612
|
||||
Patch527: USB-whiteheat-fix-potential-null-deref-at-probe.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
%endif
|
||||
|
@ -1440,37 +1440,34 @@ ApplyPatch pcmcia-fix-a-boot-time-warning-in-pcmcia-cs-code.patch
|
|||
#rhbz 1244511
|
||||
ApplyPatch HID-chicony-Add-support-for-Acer-Aspire-Switch-12.patch
|
||||
|
||||
#rhbz 1251877 1251880 1250279 1248741
|
||||
ApplyPatch HID-hid-input-Fix-accessing-freed-memory-during-devi.patch
|
||||
|
||||
#rhbz 1239050
|
||||
ApplyPatch ideapad-laptop-Add-Lenovo-Yoga-3-14-to-no_hw_rfkill-.patch
|
||||
|
||||
#rhbz 1253789
|
||||
ApplyPatch iSCSI-let-session-recovery_tmo-sysfs-writes-persist.patch
|
||||
|
||||
#rhbz 1250717
|
||||
ApplyPatch ext4-dont-manipulate-recovery-flag-when-freezing.patch
|
||||
|
||||
#CVE-2015-6666 rhbz 1256746 1256753
|
||||
ApplyPatch Revert-sched-x86_64-Don-t-save-flags-on-context-swit.patch
|
||||
|
||||
#rhbz 1256281
|
||||
ApplyPatch mmc-sdhci-fix-dma-memory-leak-in-sdhci_pre_req.patch
|
||||
|
||||
#rhbz 1224764
|
||||
ApplyPatch x86-apic-Fix-fallout-from-x2apic-cleanup.patch
|
||||
|
||||
#rhbz 1257534
|
||||
ApplyPatch nv46-Change-mc-subdev-oclass-from-nv44-to-nv4c.patch
|
||||
|
||||
#rhbz 1212201
|
||||
ApplyPatch drm-qxl-validate-monitors-config-modes.patch
|
||||
|
||||
#rhbz 1257500
|
||||
ApplyPatch vmwgfx-Rework-device-initialization.patch
|
||||
ApplyPatch drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch
|
||||
|
||||
#CVE-2015-6937 rhbz 1263139 1263140
|
||||
ApplyPatch RDS-verify-the-underlying-transport-exists-before-cr.patch
|
||||
|
||||
#rhbz 1263762
|
||||
ApplyPatch 0001-x86-cpu-cacheinfo-Fix-teardown-path.patch
|
||||
|
||||
#CVE-2015-5257 rhbz 1265607 1265612
|
||||
ApplyPatch USB-whiteheat-fix-potential-null-deref-at-probe.patch
|
||||
|
||||
# END OF PATCH APPLICATIONS
|
||||
|
||||
%endif
|
||||
|
@ -2067,10 +2064,10 @@ rm -rf $RPM_BUILD_ROOT
|
|||
###
|
||||
|
||||
%if %{with_tools}
|
||||
%post -n kernel-tools
|
||||
%post -n kernel-tools-libs
|
||||
/sbin/ldconfig
|
||||
|
||||
%postun -n kernel-tools
|
||||
%postun -n kernel-tools-libs
|
||||
/sbin/ldconfig
|
||||
%endif
|
||||
|
||||
|
@ -2320,6 +2317,24 @@ fi
|
|||
# and build.
|
||||
#
|
||||
%changelog
|
||||
* Tue Sep 29 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.1.9-200
|
||||
- Linux v4.1.9
|
||||
|
||||
* Thu Sep 24 2015 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2015-5257 Null ptr deref in usb whiteheat driver (rhbz 1265607 1265612)
|
||||
|
||||
* Mon Sep 21 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.1.8-200
|
||||
- Linux v4.1.8
|
||||
|
||||
* Fri Sep 18 2015 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Fix oops in 32-bit kernel on 64-bit AMD cpus (rhbz 1263762)
|
||||
|
||||
* Tue Sep 15 2015 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2015-6937 net: rds null pointer (rhbz 1263139 1263140)
|
||||
|
||||
* Mon Sep 14 2015 Laura Abbott <labbott@redhat.com> - 4.1.7-200
|
||||
- Linux v4.1.7
|
||||
|
||||
* Sun Sep 13 2015 Pavel Alexeev <Pahan@Hubbitus.info> - 4.1.6-201.hu.1.pf4
|
||||
- Update pf to v4.1-pf4 - https://pf.natalenko.name/forum/index.php?topic=345.0
|
||||
- Possible kernel-3.19-bfs-compat-hubbitus.patch will not needed anymore (https://pf.natalenko.name/forum/index.php?topic=332.0).
|
||||
|
|
Loading…
Reference in New Issue