diff -urp linux-5.6.3/3rdparty/rtl8723de.orig/os_dep/linux/rtw_proc.c linux-5.6.3/3rdparty/rtl8723de/os_dep/linux/rtw_proc.c --- linux-5.6.3/3rdparty/rtl8723de.orig/os_dep/linux/rtw_proc.c 2020-04-10 17:12:12.495541693 +0300 +++ linux-5.6.3/3rdparty/rtl8723de/os_dep/linux/rtw_proc.c 2020-04-10 17:22:51.328340275 +0300 @@ -68,12 +68,19 @@ inline struct proc_dir_entry *rtw_proc_c return entry; } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)) +inline struct proc_dir_entry *rtw_proc_create_entry(const char *name, struct proc_dir_entry *parent, + const struct proc_ops *pops, void * data) +#else inline struct proc_dir_entry *rtw_proc_create_entry(const char *name, struct proc_dir_entry *parent, const struct file_operations *fops, void * data) +#endif { struct proc_dir_entry *entry; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)) + entry = proc_create_data(name, S_IFREG | S_IRUGO | S_IWUGO, parent, pops, data); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)) entry = proc_create_data(name, S_IFREG | S_IRUGO | S_IWUGO, parent, fops, data); #else entry = create_proc_entry(name, S_IFREG | S_IRUGO | S_IWUGO, parent); @@ -219,7 +226,24 @@ static ssize_t rtw_drv_proc_write(struct return -EROFS; } -static const struct file_operations rtw_drv_proc_seq_fops = { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)) +static const struct proc_ops rtw_drv_proc_seq_ops = { + .proc_open = rtw_drv_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = seq_release, + .proc_write = rtw_drv_proc_write, +}; + +static const struct proc_ops rtw_drv_proc_sseq_ops = { + .proc_open = rtw_drv_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, + .proc_write = rtw_drv_proc_write, +}; +#else +static const struct file_operations rtw_drv_proc_seq_ops = { .owner = THIS_MODULE, .open = rtw_drv_proc_open, .read = seq_read, @@ -228,7 +252,7 @@ static const struct file_operations rtw_ .write = rtw_drv_proc_write, }; -static const struct file_operations rtw_drv_proc_sseq_fops = { +static const struct file_operations rtw_drv_proc_sseq_ops = { .owner = THIS_MODULE, .open = rtw_drv_proc_open, .read = seq_read, @@ -236,6 +260,7 @@ static const struct file_operations rtw_ .release = single_release, .write = rtw_drv_proc_write, }; +#endif int rtw_drv_proc_init(void) { @@ -257,9 +282,9 @@ int rtw_drv_proc_init(void) for (i = 0; i < drv_proc_hdls_num; i++) { if (drv_proc_hdls[i].type == RTW_PROC_HDL_TYPE_SEQ) - entry = rtw_proc_create_entry(drv_proc_hdls[i].name, rtw_proc, &rtw_drv_proc_seq_fops, (void *)i); + entry = rtw_proc_create_entry(drv_proc_hdls[i].name, rtw_proc, &rtw_drv_proc_seq_ops, (void *)i); else if (drv_proc_hdls[i].type == RTW_PROC_HDL_TYPE_SSEQ) - entry = rtw_proc_create_entry(drv_proc_hdls[i].name, rtw_proc, &rtw_drv_proc_sseq_fops, (void *)i); + entry = rtw_proc_create_entry(drv_proc_hdls[i].name, rtw_proc, &rtw_drv_proc_sseq_ops, (void *)i); else entry = NULL; @@ -2335,7 +2360,24 @@ static ssize_t rtw_adapter_proc_write(st return -EROFS; } -static const struct file_operations rtw_adapter_proc_seq_fops = { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)) +static const struct proc_ops rtw_adapter_proc_seq_ops = { + .proc_open = rtw_adapter_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = seq_release, + .proc_write = rtw_adapter_proc_write, +}; + +static const struct proc_ops rtw_adapter_proc_sseq_ops = { + .proc_open = rtw_adapter_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, + .proc_write = rtw_adapter_proc_write, +}; +#else +static const struct file_operations rtw_adapter_proc_seq_ops = { .owner = THIS_MODULE, .open = rtw_adapter_proc_open, .read = seq_read, @@ -2344,7 +2386,7 @@ static const struct file_operations rtw_ .write = rtw_adapter_proc_write, }; -static const struct file_operations rtw_adapter_proc_sseq_fops = { +static const struct file_operations rtw_adapter_proc_sseq_ops = { .owner = THIS_MODULE, .open = rtw_adapter_proc_open, .read = seq_read, @@ -2352,6 +2394,7 @@ static const struct file_operations rtw_ .release = single_release, .write = rtw_adapter_proc_write, }; +#endif int proc_get_odm_dbg_comp(struct seq_file *m, void *v) { @@ -2670,7 +2713,24 @@ static ssize_t rtw_odm_proc_write(struct return -EROFS; } -static const struct file_operations rtw_odm_proc_seq_fops = { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)) +static const struct proc_ops rtw_odm_proc_seq_ops = { + .proc_open = rtw_odm_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = seq_release, + .proc_write = rtw_odm_proc_write, +}; + +static const struct proc_ops rtw_odm_proc_sseq_ops = { + .proc_open = rtw_odm_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, + .proc_write = rtw_odm_proc_write, +}; +#else +static const struct file_operations rtw_odm_proc_seq_ops = { .owner = THIS_MODULE, .open = rtw_odm_proc_open, .read = seq_read, @@ -2679,7 +2739,7 @@ static const struct file_operations rtw_ .write = rtw_odm_proc_write, }; -static const struct file_operations rtw_odm_proc_sseq_fops = { +static const struct file_operations rtw_odm_proc_sseq_ops = { .owner = THIS_MODULE, .open = rtw_odm_proc_open, .read = seq_read, @@ -2687,6 +2747,7 @@ static const struct file_operations rtw_ .release = single_release, .write = rtw_odm_proc_write, }; +#endif struct proc_dir_entry *rtw_odm_proc_init(struct net_device *dev) { @@ -2715,9 +2776,9 @@ struct proc_dir_entry *rtw_odm_proc_init for (i = 0; i < odm_proc_hdls_num; i++) { if (odm_proc_hdls[i].type == RTW_PROC_HDL_TYPE_SEQ) - entry = rtw_proc_create_entry(odm_proc_hdls[i].name, dir_odm, &rtw_odm_proc_seq_fops, (void *)i); + entry = rtw_proc_create_entry(odm_proc_hdls[i].name, dir_odm, &rtw_odm_proc_seq_ops, (void *)i); else if (odm_proc_hdls[i].type == RTW_PROC_HDL_TYPE_SSEQ) - entry = rtw_proc_create_entry(odm_proc_hdls[i].name, dir_odm, &rtw_odm_proc_sseq_fops, (void *)i); + entry = rtw_proc_create_entry(odm_proc_hdls[i].name, dir_odm, &rtw_odm_proc_sseq_ops, (void *)i); else entry = NULL; @@ -2809,7 +2870,24 @@ static ssize_t rtw_mcc_proc_write(struct return -EROFS; } -static const struct file_operations rtw_mcc_proc_seq_fops = { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)) +static const struct proc_ops rtw_mcc_proc_seq_ops = { + .proc_open = rtw_mcc_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = seq_release, + .proc_write = rtw_mcc_proc_write, +}; + +static const struct file_operations rtw_mcc_proc_sseq_ops = { + .proc_open = rtw_mcc_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, + .proc_write = rtw_mcc_proc_write, +}; +#else +static const struct file_operations rtw_mcc_proc_seq_ops = { .owner = THIS_MODULE, .open = rtw_mcc_proc_open, .read = seq_read, @@ -2818,7 +2896,7 @@ static const struct file_operations rtw_ .write = rtw_mcc_proc_write, }; -static const struct file_operations rtw_mcc_proc_sseq_fops = { +static const struct file_operations rtw_mcc_proc_sseq_ops = { .owner = THIS_MODULE, .open = rtw_mcc_proc_open, .read = seq_read, @@ -2826,6 +2904,7 @@ static const struct file_operations rtw_ .release = single_release, .write = rtw_mcc_proc_write, }; +#endif struct proc_dir_entry *rtw_mcc_proc_init(struct net_device *dev) { @@ -2854,9 +2933,9 @@ struct proc_dir_entry *rtw_mcc_proc_init for (i = 0; i < mcc_proc_hdls_num; i++) { if (mcc_proc_hdls[i].type == RTW_PROC_HDL_TYPE_SEQ) - entry = rtw_proc_create_entry(mcc_proc_hdls[i].name, dir_mcc, &rtw_mcc_proc_seq_fops, (void *)i); + entry = rtw_proc_create_entry(mcc_proc_hdls[i].name, dir_mcc, &rtw_mcc_proc_seq_ops, (void *)i); else if (mcc_proc_hdls[i].type == RTW_PROC_HDL_TYPE_SSEQ) - entry = rtw_proc_create_entry(mcc_proc_hdls[i].name, dir_mcc, &rtw_mcc_proc_sseq_fops, (void *)i); + entry = rtw_proc_create_entry(mcc_proc_hdls[i].name, dir_mcc, &rtw_mcc_proc_sseq_ops, (void *)i); else entry = NULL; @@ -2920,9 +2999,9 @@ struct proc_dir_entry *rtw_adapter_proc_ for (i = 0; i < adapter_proc_hdls_num; i++) { if (adapter_proc_hdls[i].type == RTW_PROC_HDL_TYPE_SEQ) - entry = rtw_proc_create_entry(adapter_proc_hdls[i].name, dir_dev, &rtw_adapter_proc_seq_fops, (void *)i); + entry = rtw_proc_create_entry(adapter_proc_hdls[i].name, dir_dev, &rtw_adapter_proc_seq_ops, (void *)i); else if (adapter_proc_hdls[i].type == RTW_PROC_HDL_TYPE_SSEQ) - entry = rtw_proc_create_entry(adapter_proc_hdls[i].name, dir_dev, &rtw_adapter_proc_sseq_fops, (void *)i); + entry = rtw_proc_create_entry(adapter_proc_hdls[i].name, dir_dev, &rtw_adapter_proc_sseq_ops, (void *)i); else entry = NULL;