summaryrefslogtreecommitdiff
path: root/drivers/block
diff options
context:
space:
mode:
authorClark Williams <williams@redhat.com>2022-02-04 12:48:03 -0600
committerClark Williams <williams@redhat.com>2022-02-04 12:48:03 -0600
commit643b2561513124128bbe5a056882cc97a2b38fc2 (patch)
tree33c2b1034c47baff0341b0bb23be109affa36e1e /drivers/block
parent6d5eff0660b16bbfebd9bd0e801b32a3251f156c (diff)
parentf4b1bd6d9c2e2818ad1ef2483471c8b9a5c0a01c (diff)
downloadlinux-rt-643b2561513124128bbe5a056882cc97a2b38fc2.tar.gz
Merge tag 'v4.19.227' into v4.19-rt
This is the 4.19.227 stable release
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/floppy.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index 8f444b375761..e6e95e67c40e 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -1002,7 +1002,7 @@ static DECLARE_DELAYED_WORK(fd_timer, fd_timer_workfn);
static void cancel_activity(void)
{
do_floppy = NULL;
- cancel_delayed_work_sync(&fd_timer);
+ cancel_delayed_work(&fd_timer);
cancel_work_sync(&floppy_work);
}
@@ -3123,6 +3123,8 @@ static void raw_cmd_free(struct floppy_raw_cmd **ptr)
}
}
+#define MAX_LEN (1UL << MAX_ORDER << PAGE_SHIFT)
+
static int raw_cmd_copyin(int cmd, void __user *param,
struct floppy_raw_cmd **rcmd)
{
@@ -3160,7 +3162,7 @@ loop:
ptr->resultcode = 0;
if (ptr->flags & (FD_RAW_READ | FD_RAW_WRITE)) {
- if (ptr->length <= 0)
+ if (ptr->length <= 0 || ptr->length >= MAX_LEN)
return -EINVAL;
ptr->kernel_data = (char *)fd_dma_mem_alloc(ptr->length);
fallback_on_nodma_alloc(&ptr->kernel_data, ptr->length);