From: Samuel Ortiz <samuel-jcdQHdrhKHMdnm+yROfE0A@public.gmane.org>
To: "David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Ross Burton <ross-RWuK6r/cQWRpLGFMi4vTTA@public.gmane.org>,
irda-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: [PATCH] [IrDA] LMP discovery timer not started by default
Date: Wed, 23 Jan 2008 04:34:22 +0100 [thread overview]
Message-ID: <20080123033422.GA20754@sortiz.org> (raw)
Hi Dave,
By default, LMP sets up a 3 seconds timer for discovery.
We don't need it until discovery is set to 1.
This patch is against your latest net-2.6.25 tree.
From: Ross Burton <ross-RWuK6r/cQWRpLGFMi4vTTA@public.gmane.org>
Signed-off-by: Ross Burton <ross-RWuK6r/cQWRpLGFMi4vTTA@public.gmane.org>
Signed-off-by: Samuel Ortiz <samuel-jcdQHdrhKHMdnm+yROfE0A@public.gmane.org>
---
net/irda/irlmp.c | 7 +++++--
net/irda/irlmp_event.c | 4 +---
net/irda/irsysctl.c | 28 +++++++++++++++++++++++++++-
3 files changed, 33 insertions(+), 6 deletions(-)
Index: net-2.6.25/net/irda/irlmp.c
===================================================================
--- net-2.6.25.orig/net/irda/irlmp.c 2008-01-14 19:27:06.000000000 +0100
+++ net-2.6.25/net/irda/irlmp.c 2008-01-23 00:57:12.000000000 +0100
@@ -103,9 +103,12 @@
irlmp->last_lsap_sel = 0x0f; /* Reserved 0x00-0x0f */
strcpy(sysctl_devname, "Linux");
- /* Do discovery every 3 seconds */
init_timer(&irlmp->discovery_timer);
- irlmp_start_discovery_timer(irlmp, sysctl_discovery_timeout*HZ);
+
+ /* Do discovery every 3 seconds, conditionaly */
+ if (sysctl_discovery)
+ irlmp_start_discovery_timer(irlmp,
+ sysctl_discovery_timeout*HZ);
return 0;
}
Index: net-2.6.25/net/irda/irlmp_event.c
===================================================================
--- net-2.6.25.orig/net/irda/irlmp_event.c 2008-01-14 19:27:06.000000000 +0100
+++ net-2.6.25/net/irda/irlmp_event.c 2008-01-23 00:57:38.000000000 +0100
@@ -174,9 +174,7 @@
/* We always cleanup the log (active & passive discovery) */
irlmp_do_expiry();
- /* Active discovery is conditional */
- if (sysctl_discovery)
- irlmp_do_discovery(sysctl_discovery_slots);
+ irlmp_do_discovery(sysctl_discovery_slots);
/* Restart timer */
irlmp_start_discovery_timer(irlmp, sysctl_discovery_timeout * HZ);
Index: net-2.6.25/net/irda/irsysctl.c
===================================================================
--- net-2.6.25.orig/net/irda/irsysctl.c 2008-01-14 19:27:06.000000000 +0100
+++ net-2.6.25/net/irda/irsysctl.c 2008-01-22 21:30:30.000000000 +0100
@@ -29,6 +29,8 @@
#include <linux/init.h>
#include <net/irda/irda.h> /* irda_debug */
+#include <net/irda/irlmp.h>
+#include <net/irda/timer.h>
#include <net/irda/irias_object.h>
extern int sysctl_discovery;
@@ -45,6 +47,8 @@
extern int sysctl_warn_noreply_time;
extern int sysctl_lap_keepalive_time;
+extern struct irlmp_cb *irlmp;
+
/* this is needed for the proc_dointvec_minmax - Jean II */
static int max_discovery_slots = 16; /* ??? */
static int min_discovery_slots = 1;
@@ -85,6 +89,27 @@
return ret;
}
+
+static int do_discovery(ctl_table *table, int write, struct file *filp,
+ void __user *buffer, size_t *lenp, loff_t *ppos)
+{
+ int ret;
+
+ ret = proc_dointvec(table, write, filp, buffer, lenp, ppos);
+ if (ret)
+ return ret;
+
+ if (irlmp == NULL)
+ return -ENODEV;
+
+ if (sysctl_discovery)
+ irlmp_start_discovery_timer(irlmp, sysctl_discovery_timeout*HZ);
+ else
+ del_timer_sync(&irlmp->discovery_timer);
+
+ return ret;
+}
+
/* One file */
static ctl_table irda_table[] = {
{
@@ -93,7 +118,8 @@
.data = &sysctl_discovery,
.maxlen = sizeof(int),
.mode = 0644,
- .proc_handler = &proc_dointvec
+ .proc_handler = &do_discovery,
+ .strategy = &sysctl_intvec
},
{
.ctl_name = NET_IRDA_DEVNAME,
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
next reply other threads:[~2008-01-23 3:34 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-23 3:34 Samuel Ortiz [this message]
[not found] ` <20080123033422.GA20754-jcdQHdrhKHMdnm+yROfE0A@public.gmane.org>
2008-01-23 2:28 ` [PATCH] [IrDA] LMP discovery timer not started by default David Miller
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=20080123033422.GA20754@sortiz.org \
--to=samuel-jcdqhdrhkhmdnm+yrofe0a@public.gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
--cc=irda-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=ross-RWuK6r/cQWRpLGFMi4vTTA@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).