From: Bernard Pidoux <bpidoux@free.fr>
To: "David S. Miller" <davem@davemloft.net>
Cc: Ralf Baechle DL5RB <ralf@linux-mips.org>,
Linux Netdev List <netdev@vger.kernel.org>,
linux-hams <linux-hams@vger.kernel.org>
Subject: [PATCH] [AX25] unsigned long timers in ax25_info_struct_new
Date: Fri, 11 Jul 2008 20:30:21 +0200 [thread overview]
Message-ID: <200807112030.22162.bpidoux@free.fr> (raw)
A new structure is proposed with unsigned long types
for AX25 timers, in order to be compliant with kernel 2.6.
These timers are listed in /proc/net/ax25/
AX25 info can be copied into user space via ioctl call using
a new argument SIOCAX25GETINFONEW.
A KERN_INFO warning is printed if ioctl is called using
deprecated structure and argument.
Signed-off-by: Bernard Pidoux <f6bvp@amsat.org>
---
include/linux/ax25.h | 16 +++++++++++++++-
net/ax25/af_ax25.c | 16 +++++++++++-----
2 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/include/linux/ax25.h b/include/linux/ax25.h
index 56c11f0..5b4ee2f 100644
--- a/include/linux/ax25.h
+++ b/include/linux/ax25.h
@@ -36,6 +36,7 @@
#define SIOCAX25DELFWD (SIOCPROTOPRIVATE+11)
#define SIOCAX25DEVCTL (SIOCPROTOPRIVATE+12)
#define SIOCAX25GETINFO (SIOCPROTOPRIVATE+13)
+#define SIOCAX25GETINFONEW (SIOCPROTOPRIVATE+14)
#define AX25_SET_RT_IPMODE 2
@@ -94,7 +95,7 @@ struct ax25_info_struct_deprecated {
unsigned int state;
unsigned int rcv_q, snd_q;
};
-
+/* deprecated */
struct ax25_info_struct {
unsigned int n2, n2count;
unsigned int t1, t1timer;
@@ -108,6 +109,19 @@ struct ax25_info_struct {
unsigned int window;
};
+struct ax25_info_struct_new {
+ unsigned int n2, n2count;
+ unsigned long t1, t1timer;
+ unsigned long t2, t2timer;
+ unsigned long t3, t3timer;
+ unsigned long idle, idletimer;
+ unsigned int state;
+ unsigned int rcv_q, snd_q;
+ unsigned int vs, vr, va, vs_max;
+ unsigned int paclen;
+ unsigned int window;
+};
+
struct ax25_fwd_struct {
ax25_address port_from;
ax25_address port_to;
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index 2712544..e52c6af 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -1769,9 +1769,10 @@ static int ax25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
break;
case SIOCAX25GETINFO:
+ case SIOCAX25GETINFONEW:
case SIOCAX25GETINFOOLD: {
ax25_cb *ax25 = ax25_sk(sk);
- struct ax25_info_struct ax25_info;
+ struct ax25_info_struct_new ax25_info;
ax25_info.t1 = ax25->t1 / HZ;
ax25_info.t2 = ax25->t2 / HZ;
@@ -1793,11 +1794,11 @@ static int ax25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
ax25_info.paclen = ax25->paclen;
ax25_info.window = ax25->window;
- /* old structure? */
- if (cmd == SIOCAX25GETINFOOLD) {
+ /* old structure ? */
+ if (cmd != SIOCAX25GETINFONEW) {
static int warned = 0;
if (!warned) {
- printk(KERN_INFO "%s uses old SIOCAX25GETINFO\n",
+ printk(KERN_INFO "%s uses deprecated SIOCAX25GETINFOOLD or SIOCAX25GETINFO\n",
current->comm);
warned=1;
}
@@ -1806,8 +1807,13 @@ static int ax25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
res = -EFAULT;
break;
}
- } else {
+
if (copy_to_user(argp, &ax25_info, sizeof(struct ax25_info_struct))) {
+ res = -EFAULT;
+ break;
+ }
+ } else {
+ if (copy_to_user(argp, &ax25_info, sizeof(struct ax25_info_struct_new))) {
res = -EINVAL;
break;
}
--
1.5.5
reply other threads:[~2008-07-11 18:30 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200807112030.22162.bpidoux@free.fr \
--to=bpidoux@free.fr \
--cc=davem@davemloft.net \
--cc=linux-hams@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=ralf@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.