From 61598093bbdd283a7edc367d900f223070ead8d2 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 07:43:03 +0000
Subject: [PATCH] add ax88772C AX88772C_eeprom_tools
---
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