1
0

release 6.12.4 (preliminary)

This commit is contained in:
2024-12-10 06:44:25 +03:00
parent 9debc8729c
commit 407e7bac82
246 changed files with 4681 additions and 5758 deletions

View File

@@ -135,7 +135,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
spin_unlock(&sem->lock);
@@ -141,6 +193,7 @@ static struct ntsync_obj *ntsync_alloc_o
@@ -140,6 +192,7 @@ static struct ntsync_obj *ntsync_alloc_o
obj->dev = dev;
get_file(dev->file);
spin_lock_init(&obj->lock);
@@ -143,7 +143,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
return obj;
}
@@ -191,6 +244,196 @@ static int ntsync_create_sem(struct ntsy
@@ -190,6 +243,196 @@ static int ntsync_create_sem(struct ntsy
return put_user(fd, &user_args->sem);
}
@@ -340,7 +340,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
static int ntsync_char_open(struct inode *inode, struct file *file)
{
struct ntsync_device *dev;
@@ -222,6 +465,8 @@ static long ntsync_char_ioctl(struct fil
@@ -221,6 +464,8 @@ static long ntsync_char_ioctl(struct fil
switch (cmd) {
case NTSYNC_IOC_CREATE_SEM:
return ntsync_create_sem(dev, argp);

View File

@@ -322,7 +322,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
if (!ret && put_user(prev_count, user_args))
ret = -EFAULT;
@@ -194,6 +403,8 @@ static struct ntsync_obj *ntsync_alloc_o
@@ -193,6 +402,8 @@ static struct ntsync_obj *ntsync_alloc_o
get_file(dev->file);
spin_lock_init(&obj->lock);
INIT_LIST_HEAD(&obj->any_waiters);
@@ -331,7 +331,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
return obj;
}
@@ -305,7 +516,7 @@ static int ntsync_schedule(const struct
@@ -304,7 +515,7 @@ static int ntsync_schedule(const struct
* Allocate and initialize the ntsync_q structure, but do not queue us yet.
*/
static int setup_wait(struct ntsync_device *dev,
@@ -340,7 +340,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
struct ntsync_q **ret_q)
{
const __u32 count = args->count;
@@ -328,6 +539,7 @@ static int setup_wait(struct ntsync_devi
@@ -327,6 +538,7 @@ static int setup_wait(struct ntsync_devi
return -ENOMEM;
q->task = current;
atomic_set(&q->signaled, -1);
@@ -348,7 +348,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
q->count = count;
for (i = 0; i < count; i++) {
@@ -337,6 +549,16 @@ static int setup_wait(struct ntsync_devi
@@ -336,6 +548,16 @@ static int setup_wait(struct ntsync_devi
if (!obj)
goto err;
@@ -365,7 +365,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
entry->obj = obj;
entry->q = q;
entry->index = i;
@@ -366,13 +588,14 @@ static int ntsync_wait_any(struct ntsync
@@ -365,13 +587,14 @@ static int ntsync_wait_any(struct ntsync
struct ntsync_wait_args args;
struct ntsync_q *q;
int signaled;
@@ -381,7 +381,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
if (ret < 0)
return ret;
@@ -382,9 +605,9 @@ static int ntsync_wait_any(struct ntsync
@@ -381,9 +604,9 @@ static int ntsync_wait_any(struct ntsync
struct ntsync_q_entry *entry = &q->entries[i];
struct ntsync_obj *obj = entry->obj;
@@ -393,7 +393,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
}
/* check if we are already signaled */
@@ -395,9 +618,9 @@ static int ntsync_wait_any(struct ntsync
@@ -394,9 +617,9 @@ static int ntsync_wait_any(struct ntsync
if (atomic_read(&q->signaled) != -1)
break;
@@ -405,7 +405,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
}
/* sleep */
@@ -410,13 +633,94 @@ static int ntsync_wait_any(struct ntsync
@@ -409,13 +632,94 @@ static int ntsync_wait_any(struct ntsync
struct ntsync_q_entry *entry = &q->entries[i];
struct ntsync_obj *obj = entry->obj;
@@ -502,7 +502,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
signaled = atomic_read(&q->signaled);
if (signaled != -1) {
struct ntsync_wait_args __user *user_args = argp;
@@ -442,6 +746,8 @@ static int ntsync_char_open(struct inode
@@ -441,6 +745,8 @@ static int ntsync_char_open(struct inode
if (!dev)
return -ENOMEM;
@@ -511,7 +511,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
file->private_data = dev;
dev->file = file;
return nonseekable_open(inode, file);
@@ -465,6 +771,8 @@ static long ntsync_char_ioctl(struct fil
@@ -464,6 +770,8 @@ static long ntsync_char_ioctl(struct fil
switch (cmd) {
case NTSYNC_IOC_CREATE_SEM:
return ntsync_create_sem(dev, argp);

View File

@@ -121,7 +121,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
/*
* Actually change the semaphore state, returning -EOVERFLOW if it is made
* invalid.
@@ -455,6 +493,33 @@ static int ntsync_create_sem(struct ntsy
@@ -454,6 +492,33 @@ static int ntsync_create_sem(struct ntsy
return put_user(fd, &user_args->sem);
}
@@ -155,7 +155,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
static struct ntsync_obj *get_obj(struct ntsync_device *dev, int fd)
{
struct file *file = fget(fd);
@@ -524,7 +589,7 @@ static int setup_wait(struct ntsync_devi
@@ -523,7 +588,7 @@ static int setup_wait(struct ntsync_devi
struct ntsync_q *q;
__u32 i, j;
@@ -164,7 +164,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
return -EINVAL;
if (args->count > NTSYNC_MAX_WAIT_COUNT)
@@ -538,6 +603,7 @@ static int setup_wait(struct ntsync_devi
@@ -537,6 +602,7 @@ static int setup_wait(struct ntsync_devi
if (!q)
return -ENOMEM;
q->task = current;
@@ -172,7 +172,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
atomic_set(&q->signaled, -1);
q->all = all;
q->count = count;
@@ -580,6 +646,9 @@ static void try_wake_any_obj(struct ntsy
@@ -579,6 +645,9 @@ static void try_wake_any_obj(struct ntsy
case NTSYNC_TYPE_SEM:
try_wake_any_sem(obj);
break;
@@ -182,7 +182,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
}
}
@@ -769,6 +838,8 @@ static long ntsync_char_ioctl(struct fil
@@ -768,6 +837,8 @@ static long ntsync_char_ioctl(struct fil
void __user *argp = (void __user *)parm;
switch (cmd) {

View File

@@ -119,7 +119,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
default:
return -ENOIOCTLCMD;
}
@@ -659,6 +715,7 @@ static int setup_wait(struct ntsync_devi
@@ -658,6 +714,7 @@ static int setup_wait(struct ntsync_devi
q->owner = args->owner;
atomic_set(&q->signaled, -1);
q->all = all;
@@ -127,7 +127,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
q->count = count;
for (i = 0; i < count; i++) {
@@ -767,7 +824,7 @@ static int ntsync_wait_any(struct ntsync
@@ -766,7 +823,7 @@ static int ntsync_wait_any(struct ntsync
struct ntsync_wait_args __user *user_args = argp;
/* even if we caught a signal, we need to communicate success */
@@ -136,7 +136,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
if (put_user(signaled, &user_args->index))
ret = -EFAULT;
@@ -848,7 +905,7 @@ static int ntsync_wait_all(struct ntsync
@@ -847,7 +904,7 @@ static int ntsync_wait_all(struct ntsync
struct ntsync_wait_args __user *user_args = argp;
/* even if we caught a signal, we need to communicate success */

View File

@@ -91,7 +91,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
/*
* Actually change the semaphore state, returning -EOVERFLOW if it is made
* invalid.
@@ -629,6 +662,30 @@ static int ntsync_create_mutex(struct nt
@@ -628,6 +661,30 @@ static int ntsync_create_mutex(struct nt
return put_user(fd, &user_args->mutex);
}
@@ -122,7 +122,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
static struct ntsync_obj *get_obj(struct ntsync_device *dev, int fd)
{
struct file *file = fget(fd);
@@ -759,6 +816,9 @@ static void try_wake_any_obj(struct ntsy
@@ -758,6 +815,9 @@ static void try_wake_any_obj(struct ntsy
case NTSYNC_TYPE_MUTEX:
try_wake_any_mutex(obj);
break;
@@ -132,7 +132,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
}
}
@@ -948,6 +1008,8 @@ static long ntsync_char_ioctl(struct fil
@@ -947,6 +1007,8 @@ static long ntsync_char_ioctl(struct fil
void __user *argp = (void __user *)parm;
switch (cmd) {

View File

@@ -21,7 +21,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
--- a/drivers/misc/ntsync.c
+++ b/drivers/misc/ntsync.c
@@ -885,22 +885,29 @@ static int setup_wait(struct ntsync_devi
@@ -884,22 +884,29 @@ static int setup_wait(struct ntsync_devi
const struct ntsync_wait_args *args, bool all,
struct ntsync_q **ret_q)
{
@@ -54,7 +54,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
if (!q)
return -ENOMEM;
q->task = current;
@@ -910,7 +917,7 @@ static int setup_wait(struct ntsync_devi
@@ -909,7 +916,7 @@ static int setup_wait(struct ntsync_devi
q->ownerdead = false;
q->count = count;
@@ -63,7 +63,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
struct ntsync_q_entry *entry = &q->entries[i];
struct ntsync_obj *obj = get_obj(dev, fds[i]);
@@ -960,10 +967,10 @@ static void try_wake_any_obj(struct ntsy
@@ -959,10 +966,10 @@ static void try_wake_any_obj(struct ntsy
static int ntsync_wait_any(struct ntsync_device *dev, void __user *argp)
{
struct ntsync_wait_args args;
@@ -75,7 +75,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
int ret;
if (copy_from_user(&args, argp, sizeof(args)))
@@ -973,9 +980,13 @@ static int ntsync_wait_any(struct ntsync
@@ -972,9 +979,13 @@ static int ntsync_wait_any(struct ntsync
if (ret < 0)
return ret;
@@ -90,7 +90,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
struct ntsync_q_entry *entry = &q->entries[i];
struct ntsync_obj *obj = entry->obj;
@@ -984,9 +995,15 @@ static int ntsync_wait_any(struct ntsync
@@ -983,9 +994,15 @@ static int ntsync_wait_any(struct ntsync
ntsync_unlock_obj(dev, obj, all);
}
@@ -108,7 +108,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
struct ntsync_obj *obj = q->entries[i].obj;
if (atomic_read(&q->signaled) != -1)
@@ -1003,7 +1020,7 @@ static int ntsync_wait_any(struct ntsync
@@ -1002,7 +1019,7 @@ static int ntsync_wait_any(struct ntsync
/* and finally, unqueue */
@@ -117,7 +117,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
struct ntsync_q_entry *entry = &q->entries[i];
struct ntsync_obj *obj = entry->obj;
@@ -1063,6 +1080,14 @@ static int ntsync_wait_all(struct ntsync
@@ -1062,6 +1079,14 @@ static int ntsync_wait_all(struct ntsync
*/
list_add_tail(&entry->node, &obj->all_waiters);
}
@@ -132,7 +132,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
/* check if we are already signaled */
@@ -1070,6 +1095,21 @@ static int ntsync_wait_all(struct ntsync
@@ -1069,6 +1094,21 @@ static int ntsync_wait_all(struct ntsync
mutex_unlock(&dev->wait_all_lock);
@@ -154,7 +154,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
/* sleep */
ret = ntsync_schedule(q, &args);
@@ -1095,6 +1135,18 @@ static int ntsync_wait_all(struct ntsync
@@ -1094,6 +1134,18 @@ static int ntsync_wait_all(struct ntsync
mutex_unlock(&dev->wait_all_lock);

View File

@@ -12,7 +12,7 @@ Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -16319,6 +16319,15 @@ T: git https://github.com/Paragon-Softwa
@@ -16486,6 +16486,15 @@ T: git https://github.com/Paragon-Softwa
F: Documentation/filesystems/ntfs3.rst
F: fs/ntfs3/

View File

@@ -11,7 +11,7 @@ This reverts commit f5b335dc025cfee90957efa90dc72fada0d5abb4.
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -507,7 +507,6 @@ config OPEN_DICE
@@ -517,7 +517,6 @@ config OPEN_DICE
config NTSYNC
tristate "NT synchronization primitive emulation"