From: Jeremy Sowden Date: Fri, 4 Feb 2022 13:26:42 +0000 (+0100) Subject: extensions: replace PDE_DATA X-Git-Tag: v3.20~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=966fa43ad0dee837aa3387c02f72b1b7424a6f93;p=thirdparty%2Fxtables-addons.git extensions: replace PDE_DATA The `PDE_DATA` function for retrieving private data from a procfs inode has been replaced by `pde_data` in 5.17. Replace all instances of the former with the latter, but add a macro to xtables_compat.h in order to preserve compatibility with older kernels. Link: https://lore.kernel.org/lkml/20211124081956.87711-1-songmuchun@bytedance.com/ Signed-off-by: Jeremy Sowden --- diff --git a/extensions/compat_xtables.h b/extensions/compat_xtables.h index eff3bde..1feea88 100644 --- a/extensions/compat_xtables.h +++ b/extensions/compat_xtables.h @@ -26,6 +26,9 @@ # define ip_route_me_harder(xnet, xsk, xskb, xaddrtype) ip_route_me_harder((xnet), (xskb), (xaddrtype)) # define ip6_route_me_harder(xnet, xsk, xskb) ip6_route_me_harder((xnet), (xskb)) #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0) +# define pde_data(inode) PDE_DATA(inode) +#endif static inline struct net *par_net(const struct xt_action_param *par) { diff --git a/extensions/pknock/xt_pknock.c b/extensions/pknock/xt_pknock.c index 3c304e0..287d525 100644 --- a/extensions/pknock/xt_pknock.c +++ b/extensions/pknock/xt_pknock.c @@ -277,7 +277,7 @@ pknock_proc_open(struct inode *inode, struct file *file) int ret = seq_open(file, &pknock_seq_ops); if (ret == 0) { struct seq_file *sf = file->private_data; - sf->private = PDE_DATA(inode); + sf->private = pde_data(inode); } return ret; } diff --git a/extensions/xt_DNETMAP.c b/extensions/xt_DNETMAP.c index b850918..68074e7 100644 --- a/extensions/xt_DNETMAP.c +++ b/extensions/xt_DNETMAP.c @@ -575,15 +575,14 @@ static int dnetmap_seq_open(struct inode *inode, struct file *file) st = __seq_open_private(file, &dnetmap_seq_ops, sizeof(*st)); if (st == NULL) return -ENOMEM; - - st->p = PDE_DATA(inode); + st->p = pde_data(inode); return 0; } static ssize_t dnetmap_tg_proc_write(struct file *file, const char __user *input,size_t size, loff_t *loff) { - struct dnetmap_prefix *p = PDE_DATA(file_inode(file)); + struct dnetmap_prefix *p = pde_data(file_inode(file)); struct dnetmap_entry *e; char buf[sizeof("+192.168.100.100:200.200.200.200")]; const char *c = buf; @@ -793,7 +792,7 @@ static int dnetmap_stat_proc_show(struct seq_file *m, void *data) static int dnetmap_stat_proc_open(struct inode *inode, struct file *file) { - return single_open(file, dnetmap_stat_proc_show, PDE_DATA(inode)); + return single_open(file, dnetmap_stat_proc_show, pde_data(inode)); } static const struct proc_ops dnetmap_stat_proc_fops = { diff --git a/extensions/xt_condition.c b/extensions/xt_condition.c index cf07966..41639c3 100644 --- a/extensions/xt_condition.c +++ b/extensions/xt_condition.c @@ -83,14 +83,14 @@ static int condition_proc_show(struct seq_file *m, void *data) static int condition_proc_open(struct inode *inode, struct file *file) { - return single_open(file, condition_proc_show, PDE_DATA(inode)); + return single_open(file, condition_proc_show, pde_data(inode)); } static ssize_t condition_proc_write(struct file *file, const char __user *buffer, size_t length, loff_t *loff) { - struct condition_variable *var = PDE_DATA(file_inode(file)); + struct condition_variable *var = pde_data(file_inode(file)); char newval; if (length > 0) { diff --git a/extensions/xt_quota2.c b/extensions/xt_quota2.c index 70bf095..182771e 100644 --- a/extensions/xt_quota2.c +++ b/extensions/xt_quota2.c @@ -73,14 +73,14 @@ static int quota_proc_show(struct seq_file *m, void *data) static int quota_proc_open(struct inode *inode, struct file *file) { - return single_open(file, quota_proc_show, PDE_DATA(inode)); + return single_open(file, quota_proc_show, pde_data(inode)); } static ssize_t quota_proc_write(struct file *file, const char __user *input, size_t size, loff_t *loff) { - struct xt_quota_counter *e = PDE_DATA(file_inode(file)); + struct xt_quota_counter *e = pde_data(file_inode(file)); char buf[sizeof("+-18446744073709551616")]; if (size > sizeof(buf))