From 2f7c68cb55ecb7331f2381deb497c27155f32faf Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 03 Jan 2024 09:43:39 +0000 Subject: [PATCH] update kernel to 5.10.198 --- kernel/drivers/usb/gadget/function/rndis.c | 35 ++++++++++++++++++----------------- 1 files changed, 18 insertions(+), 17 deletions(-) diff --git a/kernel/drivers/usb/gadget/function/rndis.c b/kernel/drivers/usb/gadget/function/rndis.c index 970ed15..abb0ce0 100644 --- a/kernel/drivers/usb/gadget/function/rndis.c +++ b/kernel/drivers/usb/gadget/function/rndis.c @@ -63,6 +63,8 @@ static DEFINE_IDA(rndis_ida); +static DEFINE_SPINLOCK(resp_lock); + /* Driver Version */ static const __le32 rndis_driver_version = cpu_to_le32(1); @@ -72,7 +74,7 @@ #ifdef CONFIG_USB_GADGET_DEBUG_FILES -static const struct file_operations rndis_proc_fops; +static const struct proc_ops rndis_proc_ops; #endif /* CONFIG_USB_GADGET_DEBUG_FILES */ @@ -640,6 +642,7 @@ BufLength = le32_to_cpu(buf->InformationBufferLength); BufOffset = le32_to_cpu(buf->InformationBufferOffset); if ((BufLength > RNDIS_MAX_TOTAL_SIZE) || + (BufOffset > RNDIS_MAX_TOTAL_SIZE) || (BufOffset + 8 >= RNDIS_MAX_TOTAL_SIZE)) return -EINVAL; @@ -905,7 +908,7 @@ sprintf(name, NAME_TEMPLATE, i); proc_entry = proc_create_data(name, 0660, NULL, - &rndis_proc_fops, params); + &rndis_proc_ops, params); if (!proc_entry) { kfree(params); rndis_put_nr(i); @@ -922,7 +925,6 @@ params->resp_avail = resp_avail; params->v = v; INIT_LIST_HEAD(¶ms->resp_queue); - spin_lock_init(¶ms->resp_lock); pr_debug("%s: configNr = %d\n", __func__, i); return params; @@ -1016,14 +1018,14 @@ { rndis_resp_t *r, *n; - spin_lock(¶ms->resp_lock); + spin_lock(&resp_lock); list_for_each_entry_safe(r, n, ¶ms->resp_queue, list) { if (r->buf == buf) { list_del(&r->list); kfree(r); } } - spin_unlock(¶ms->resp_lock); + spin_unlock(&resp_lock); } EXPORT_SYMBOL_GPL(rndis_free_response); @@ -1033,17 +1035,17 @@ if (!length) return NULL; - spin_lock(¶ms->resp_lock); + spin_lock(&resp_lock); list_for_each_entry_safe(r, n, ¶ms->resp_queue, list) { if (!r->send) { r->send = 1; *length = r->length; - spin_unlock(¶ms->resp_lock); + spin_unlock(&resp_lock); return r->buf; } } - spin_unlock(¶ms->resp_lock); + spin_unlock(&resp_lock); return NULL; } EXPORT_SYMBOL_GPL(rndis_get_next_response); @@ -1060,9 +1062,9 @@ r->length = length; r->send = 0; - spin_lock(¶ms->resp_lock); + spin_lock(&resp_lock); list_add_tail(&r->list, ¶ms->resp_queue); - spin_unlock(¶ms->resp_lock); + spin_unlock(&resp_lock); return r; } @@ -1175,13 +1177,12 @@ return single_open(file, rndis_proc_show, PDE_DATA(inode)); } -static const struct file_operations rndis_proc_fops = { - .owner = THIS_MODULE, - .open = rndis_proc_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, - .write = rndis_proc_write, +static const struct proc_ops rndis_proc_ops = { + .proc_open = rndis_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, + .proc_write = rndis_proc_write, }; #define NAME_TEMPLATE "driver/rndis-%03d" -- Gitblit v1.6.2