* Re: What were the reasons of having mandatory IP address at AX.25 interfaces ?
From: Matti Aarnio @ 2008-02-04 15:02 UTC (permalink / raw)
To: Andi Kleen; +Cc: linux-hams, netdev
In-Reply-To: <p731w7s4wic.fsf@bingen.suse.de>
On Mon, Feb 04, 2008 at 03:38:35PM +0100, Andi Kleen wrote:
> Matti Aarnio <matti.aarnio@zmailer.org> writes:
>
> > .. the original reason was apparently that _ifconfig_ blew up
> > when it saw protocols that it didn't understand on network
> > interfaces. Possibly when there was no IP protocol on an
> > interface.
>
> It's not only ifconfig, a lot of programs use SIOCGIFCONF
> to query ip addresses.
So ? My codes do too, and filter away things they are not
interested in. (When they specifically look for IP addresses.)
Of course I may be in minority by expecting the unexpected,
and handling such "weird" multiprotocol systems...
I found original explanation for that mandatoryness finally.
It was in order to silence bug reports in certain cases when
real fix would have been to really find all interfaces instead
of complaining.
In the end I used same trick that ifconfig tool uses to find
all interfaces, and filter away those that AX.25 subsystems
are not interested in - end of "SIOCGIFCONF problems".
netdev:ish developemnt thing would be, that we ( = myself probably )
make SIOCGIFCONF to return those devices that have addresses
in the protocol family that the socket used for the query has.
For PF_INET we might return also PF_INET6 values to lessen
the spanish-inquisition -impact...
.. or do you know any who looks up interface IP addresses with
PF_FILE ( = AF_UNIX ) socket ?
What do the competitor systems B, S, and W do ?
> -Andi
/Matti Aarnio
^ permalink raw reply
* Re: Slow OOM in netif_RX function
From: Andi Kleen @ 2008-02-04 15:55 UTC (permalink / raw)
To: Ivan Dichev; +Cc: Eric Dumazet, Arnaldo Carvalho de Melo, Andi Kleen, netdev
In-Reply-To: <47A72740.9030706@obs.bg>
> Nothing that looks like a struct net_device. All the dumped leaked slab
> look the same until "45 20 05 d8" (the ascii 'E' on the 3rd line).
45 ... is often the start of an IP header (IPv4, 5*4=20 bytes length)
You could dump them to a file (e.g. using a sial script) and then
look at them with tcpdump or similar to get an idea what kinds
of packets they are.
-Andi
^ permalink raw reply
* Re: [PATCH 2/2] ehea: add memory remove hotplug support
From: Jan-Bernd Themann @ 2008-02-04 15:24 UTC (permalink / raw)
To: michael
Cc: Jeff Garzik, Thomas Klein, Jan-Bernd Themann, netdev,
linux-kernel, linux-ppc, Christoph Raisch, Marcus Eder
In-Reply-To: <1202136362.7672.5.camel@concordia>
On Monday 04 February 2008 15:46, Michael Ellerman wrote:
> On Mon, 2008-02-04 at 14:04 +0100, Jan-Bernd Themann wrote:
> > Add memory remove hotplug support
> > @@ -3559,6 +3578,10 @@ int __init ehea_module_init(void)
> > if (ret)
> > ehea_info("failed registering reboot notifier");
> >
> > + ret = register_memory_notifier(&ehea_mem_nb);
> > + if (ret)
> > + ehea_info("failed registering memory remove notifier");
> >
> > ret = crash_shutdown_register(&ehea_crash_handler);
> > if (ret)
> > ehea_info("failed registering crash handler");
>
> You don't do anything except print a message if the registration fails.
> What happens when someone tries to remove memory but the memory notifier
> wasn't registered properly? Bang?
In case the registration fails and somebody tries to free memory:
- Driver will not remove the affected memory from the eHEA memory region
--> Firmware (phyp) can not free that memory (as marked as used)
--> Therefore the removed memory could not be used in an other partition
It makes sense to allow the driver to work anyway. Having no ethernet
would not really be a good alternative.
Regards,
Jan-Bernd
^ permalink raw reply
* [PATCH 2.6.24-mm1] error compiling net driver NE2000/NE1000
From: Pierre Peiffer @ 2008-02-04 15:29 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel, netdev
Hi,
When I compile the kernel 2.6.24-mm1 with:
CONFIG_NET_ISA=y
CONFIG_NE2000=y
I have the following compile error:
...
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o: In function `ne_block_output':
linux-2.6.24-mm1/drivers/net/ne.c:797: undefined reference to `NS8390_init'
drivers/built-in.o: In function `ne_drv_resume':
linux-2.6.24-mm1/drivers/net/ne.c:858: undefined reference to `NS8390_init'
drivers/built-in.o: In function `ne_probe1':
linux-2.6.24-mm1/drivers/net/ne.c:539: undefined reference to `NS8390_init'
make[1]: *** [.tmp_vmlinux1] Error 1
make: *** [sub-make] Error 2
As I saw that the file 8390p.c is compiled for this driver, but not the file
8390.c which contains this function NS8390_init(), I fixed this error with
the following patch.
As NS8390p_init() does the same thing than NS8390_init(), I suppose that this is the right fix ?
Signed-off-by: Pierre Peiffer <pierre.peiffer@bull.net>
---
drivers/net/ne.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Index: b/drivers/net/ne.c
===================================================================
--- a/drivers/net/ne.c
+++ b/drivers/net/ne.c
@@ -536,7 +536,7 @@ static int __init ne_probe1(struct net_d
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = eip_poll;
#endif
- NS8390_init(dev, 0);
+ NS8390p_init(dev, 0);
ret = register_netdev(dev);
if (ret)
@@ -794,7 +794,7 @@ retry:
if (time_after(jiffies, dma_start + 2*HZ/100)) { /* 20ms */
printk(KERN_WARNING "%s: timeout waiting for Tx RDC.\n", dev->name);
ne_reset_8390(dev);
- NS8390_init(dev,1);
+ NS8390p_init(dev,1);
break;
}
@@ -855,7 +855,7 @@ static int ne_drv_resume(struct platform
if (netif_running(dev)) {
ne_reset_8390(dev);
- NS8390_init(dev, 1);
+ NS8390p_init(dev, 1);
netif_device_attach(dev);
}
return 0;
--
Pierre
^ permalink raw reply
* Re: SCTP NAT module for netfilter
From: Vlad Yasevich @ 2008-02-04 15:40 UTC (permalink / raw)
To: Sohan Shetty; +Cc: netdev, netfilter-devel-owner
In-Reply-To: <1C6541574A2FC447B53A6B4522B678AFF057C8@moe.nextone.local>
Sohan Shetty wrote:
> Is anyone aware if there an NAT module for netfilter being developed for SCTP protocol ?
I don't believe there is one yet. You are always welcome to write it.
>
>
> I have searched the netfilter development tree source code and also mailing list and so far I have not found the NAT module for SCTP . There is SCTP conntrack module and packet match module.
>
> If anyone is aware and can point me to some one who is already working on this or has evaluated this it would be of great help.
>
>
> SCTP is defined in [RFC 2960] Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, M., Zhang, L. and V. Paxson, "Stream Control Transmission Protocol", RFC 2960, October 2000.
>
This has been updated. See RFC 4960.
-vlad
^ permalink raw reply
* Re: [PATCH] 2.6.24-mm1 section type conflict cleanup
From: Kamalesh Babulal @ 2008-02-04 16:22 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, netdev, sam, apw, balbir
In-Reply-To: <20080203171634.58ab668b.akpm@linux-foundation.org>
Hi Andrew,
The 2.6.24-mm1 kernel build fails at many places with section type
conflict build error.
drivers/net/typhoon.c:181: error: typhoon_card_info causes a section type conflict
make[2]: *** [drivers/net/typhoon.o] Error 1
drivers/net/natsemi.c:245: error: natsemi_pci_info causes a section type conflict
make[2]: *** [drivers/net/natsemi.o] Error 1
drivers/net/bnx2.c:95: error: board_info causes a section type conflict
make[2]: *** [drivers/net/bnx2.o] Error 1
drivers/net/bnx2x.c:112: error: board_info causes a section type conflict
make[2]: *** [drivers/net/bnx2x.o] Error 1
drivers/net/bnx2x.c:112: error: board_info causes a section type conflict
make[2]: *** [drivers/net/bnx2x.o] Error 1
drivers/net/via-velocity.c:453: error: velocity_id_table causes a section type conflict
make[2]: *** [drivers/net/via-velocity.o] Error 1
drivers/net/starfire.c:350: error: netdrv_tbl causes a section type conflict
make[2]: *** [drivers/net/starfire.o] Error 1
I have tested the patch for build test only
Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
--
--- linux-2.6.24/drivers/net/typhoon.c 2008-01-25 04:28:37.000000000 +0530
+++ linux-2.6.24/drivers/net/~typhoon.c 2008-02-04 16:21:55.000000000 +0530
@@ -178,7 +178,7 @@ enum typhoon_cards {
};
/* directly indexed by enum typhoon_cards, above */
-static const struct typhoon_card_info typhoon_card_info[] __devinitdata = {
+static const struct typhoon_card_info typhoon_card_info[] __devinitconst = {
{ "3Com Typhoon (3C990-TX)",
TYPHOON_CRYPTO_NONE},
{ "3Com Typhoon (3CR990-TX-95)",
--- linux-2.6.24/drivers/net/natsemi.c 2008-02-04 14:57:00.000000000 +0530
+++ linux-2.6.24/drivers/net/~natsemi.c 2008-02-04 16:36:22.000000000 +0530
@@ -242,7 +242,7 @@ static const struct {
const char *name;
unsigned long flags;
unsigned int eeprom_size;
-} natsemi_pci_info[] __devinitdata = {
+} natsemi_pci_info[] __devinitconst = {
{ "Aculab E1/T1 PMXc cPCI carrier card", NATSEMI_FLAG_IGNORE_PHY, 128 },
{ "NatSemi DP8381[56]", 0, 24 },
};
--- linux-2.6.24/drivers/net/bnx2.c 2008-02-04 14:56:59.000000000 +0530
+++ linux-2.6.24/drivers/net/~bnx2.c 2008-02-04 16:44:02.000000000 +0530
@@ -92,7 +92,7 @@ typedef enum {
/* indexed by board_t, above */
static const struct {
char *name;
-} board_info[] __devinitdata = {
+} board_info[] __devinitconst = {
{ "Broadcom NetXtreme II BCM5706 1000Base-T" },
{ "HP NC370T Multifunction Gigabit Server Adapter" },
{ "HP NC370i Multifunction Gigabit Server Adapter" },
--- linux-2.6.24/drivers/net/bnx2.c 2008-02-04 16:44:47.000000000 +0530
+++ linux-2.6.24/drivers/net/~bnx2.c 2008-02-04 16:47:08.000000000 +0530
@@ -104,7 +104,7 @@ static const struct {
{ "Broadcom NetXtreme II BCM5709 1000Base-SX" },
};
-static struct pci_device_id bnx2_pci_tbl[] = {
+static struct pci_device_id bnx2_pci_tbl[] __devinitconst = {
{ PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_5706,
PCI_VENDOR_ID_HP, 0x3101, 0, 0, NC370T },
{ PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_5706,
--- linux-2.6.24/drivers/net/bnx2x.c 2008-02-04 14:57:00.000000000 +0530
+++ linux-2.6.24/drivers/net/~bnx2x.c 2008-02-04 18:01:14.000000000 +0530
@@ -109,7 +109,7 @@ enum bnx2x_board_type {
/* indexed by board_t, above */
static const struct {
char *name;
-} board_info[] __devinitdata = {
+} board_info[] __devinitconst = {
{ "Broadcom NetXtreme II BCM57710 XGb" }
};
--- linux-2.6.24/drivers/net/starfire.c 2008-01-25 04:28:37.000000000 +0530
+++ linux-2.6.24/drivers/net/~starfire.c 2008-02-04 18:08:08.000000000 +0530
@@ -347,7 +347,7 @@ MODULE_DEVICE_TABLE(pci, starfire_pci_tb
static const struct chip_info {
const char *name;
int drv_flags;
-} netdrv_tbl[] __devinitdata = {
+} netdrv_tbl[] __devinitconst = {
{ "Adaptec Starfire 6915", CanHaveMII },
};
--- linux-2.6.24/drivers/net/via-velocity.c 2008-02-04 14:57:00.000000000 +0530
+++ linux-2.6.24/drivers/net/~via-velocity.c 2008-02-04 18:04:21.000000000 +0530
@@ -450,7 +450,7 @@ static const struct velocity_info_tbl ch
* device driver. Used for hotplug autoloading.
*/
-static const struct pci_device_id velocity_id_table[] __devinitdata = {
+static const struct pci_device_id velocity_id_table[] __devinitconst = {
{ PCI_DEVICE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_612X) },
{ }
};
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
^ permalink raw reply
* Re: [NET_SCHED 00/04]: External SFQ classifiers/flow classifier
From: Patrick McHardy @ 2008-02-04 17:48 UTC (permalink / raw)
To: Corey Hickey; +Cc: Linux Netdev List
In-Reply-To: <47A4FB81.80700@fatooh.org>
Corey Hickey wrote:
> Patrick McHardy wrote:
>> These patches add support for external classifiers to SFQ and add a
>> new "flow" classifier, which can do hashing based on user-specified
>> keys or deterministic mapping of keys to classes. Additionally there
>> is a patch to make the SFQ queues visisble as classes to verify that
>> the hash is indeed doing something useful and a patch to consifiy
>> struct tcf_ext_map, which I had queued in the same tree.
>
> Excellent! I'm glad this is applied. I'm having trouble figuring out how
> it works, though. As a test, I'm trying to set up SFQ equivalent to
> ESFQ's "hash dst". Here's what I do, and this is what I get:
>
> ------------------------------------------------------------------------
> # ./tc qdisc add dev eth0 root handle 1: sfq
> # ./tc filter add dev eth0 parent 1: flow hash keys dst
> RTNETLINK answers: Invalid argument
> We have an error talking to the kernel
> ------------------------------------------------------------------------
>
> I've tried a few different keys with the same results. I don't know what
> I'm doing wrong, or even where to start figuring it out. Can you point
> me in the right direction?
You're missing protocol, handle etc. Try something like this:
tc filter add dev eth0 protocol ip pref 1 parent 1: handle 1 \
flow hash keys dst divisor 1024
^ permalink raw reply
* [PATCH] xircom_cb should return NETDEV_TX_BUSY when there are no descriptors available
From: Erik Mouw @ 2008-02-04 17:56 UTC (permalink / raw)
To: Jeff Garzik; +Cc: netdev, Waskiewicz Jr, Peter P, jamal
[-- Attachment #1: Type: text/plain, Size: 886 bytes --]
Hi,
Changes in other networking paths uncovered a bug in the xircom_cb
driver which made the kernel spew lots of the following error messages:
BUG eth1 code -5 qlen 0
It turned out that the driver returned -EIO when there was no
descriptor available for sending packets. It should return
NETDEV_TX_BUSY instead. This was discussed on the netdev list before,
see http://thread.gmane.org/gmane.linux.network/84603 .
Signed-off-by: Erik Mouw <mouw@nl.linux.org>
diff --git a/drivers/net/tulip/xircom_cb.c b/drivers/net/tulip/xircom_cb.c
index 8fc7274..6b93d01 100644
--- a/drivers/net/tulip/xircom_cb.c
+++ b/drivers/net/tulip/xircom_cb.c
@@ -441,7 +441,7 @@ static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev)
spin_unlock_irqrestore(&card->lock,flags);
trigger_transmit(card);
- return -EIO;
+ return NETDEV_TX_BUSY;
}
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply related
* Re: [PATCH] 2.6.24-mm1 section type conflict cleanup
From: Sam Ravnborg @ 2008-02-04 18:04 UTC (permalink / raw)
To: Kamalesh Babulal; +Cc: Andrew Morton, linux-kernel, netdev, apw, balbir
In-Reply-To: <20080204162223.GA6888@linux.vnet.ibm.com>
On Mon, Feb 04, 2008 at 09:52:23PM +0530, Kamalesh Babulal wrote:
> Hi Andrew,
>
> The 2.6.24-mm1 kernel build fails at many places with section type
> conflict build error.
What arch?
We have troubles with powerpc as pointed out by Al in another thread.
Sam
^ permalink raw reply
* Re: [PATCH 4/5] ehea: fix phyp checkpatch complaints
From: Scott Wood @ 2008-02-04 18:06 UTC (permalink / raw)
To: Doug Maxey
Cc: Jan-Bernd Themann, netdev, Jeff Garzik, Linux PowerPC List,
Paul Mackerras
In-Reply-To: <19294.1201927197@bebe.enoyolf.org>
Doug Maxey wrote:
> On Fri, 01 Feb 2008 13:23:45 CST, Scott Wood wrote:
>> On Thu, Jan 31, 2008 at 08:20:50PM -0600, Doug Maxey wrote:
>>> /* input param R5 */
>>> -#define H_ALL_RES_QP_EQPO EHEA_BMASK_IBM(9, 11)
> ...
>>> +#define H_ALL_RES_QP_EQPO EHEA_BMASK_IBM(9, 11)
> ...
>> This was better the way it was (before, it was readable at any tab setting);
>> checkpatch is overeager to complain on tab/space issues (it's a bit hard to
>> distinguish indentation from alignment with a regex).
>
> In emacs, with no special offsets, the lines appear to still line up.
Are you using a tab size other than 8?
> What did happen was spaces were turned to tabs where applicable.
I disagree about the applicability. :-)
> What editor shows a bad alignment?
Any editor that has been configured to a non-default tab size.
-Scott
^ permalink raw reply
* Re: [NET_SCHED 00/04]: External SFQ classifiers/flow classifier
From: Corey Hickey @ 2008-02-04 18:25 UTC (permalink / raw)
To: Patrick McHardy; +Cc: Linux Netdev List
In-Reply-To: <47A74FEE.6080103@trash.net>
Patrick McHardy wrote:
> You're missing protocol, handle etc. Try something like this:
>
> tc filter add dev eth0 protocol ip pref 1 parent 1: handle 1 \
>
> flow hash keys dst divisor 1024
Thanks, the kernel accepts that. I guess I understand tc filter usage
less than I thought I did.... Time to teach myself better.
-Corey
^ permalink raw reply
* Re: why does DCCP SO_REUSEADDR have to be SOL_DCCP?
From: Rick Jones @ 2008-02-04 18:46 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo; +Cc: Linux Network Development list
In-Reply-To: <20080202025259.GH17164@ghostprotocols.net>
Arnaldo Carvalho de Melo wrote:
> Em Fri, Feb 01, 2008 at 05:42:23PM -0800, Rick Jones escreveu:
>
>>Hi -
>>
>>I'm tweaking the netperf omni tests to be able to run over DCCP. I've run
>>across a not-unorecedented problem with getaddrinfo() not groking either
>>SOCK_DCCP or IPPROTO_DCCP in the hints, and that I can more or less live
>>with - I had to do a kludge for getaddrinfo() for IPPROTO_SCTP under Linux
>>at one point and I can see how the two are not necessarily going to be in
>>sync.
>
>
> See the ttcp patch where we do a xgetaddrinfo crude hack to handle dccp:
>
> http://vger.kernel.org/~acme/dccp/ttcp.c
That is basically what netperf ends-up doing presently, although it is
much more vocal about it :)
>>And I've worked-around no user-level include files (ie without setting
>>__KERNEL__) define the DCCP stuff, and that is OK too, albeit somewhat
>>inconvenient.
>
>
> Humm, for what? Again, see the ttcp code above:
I see that it too is making a guess for the DCCP defines. I prefer to
get those from the "regular" include files because several of them can
be platform specific and netperf happens on many platforms. If DCCP is
still "experimental" I suppose that living with defines not being in
user-level includes is to be expected.
>>My question though is why on earth does an SO_REUSEADDR setsockopt()
>>against a DCCP socket have to be SOL_DCCP? SCTP and TCP are quite happy
>>with SOL_SOCKET, and it might be foolish consistency, but since the option
>>_does_ begin with SO_ I'd have expected it to work for SOL_SOCKET, but
>>(again RHEL5.1, yes, I do plan on getting upstream but have to satisfy
>>several masters) it doesn't seem to be the case - a subsequent listen() or
>>connect() call after an SOL_SOCKET SO_REUSEADDR against a DCCP socket
>>leaves one SOL as it were...
>
>
> Strange, lemme check...
>
> 1. sys_socketcall ->
> 2. sys_setsockopt ->
> 3. if (level == SOL_SOCKET) {
> 4. sock_setsockopt:
> 5. case SO_REUSEADDR:
> 6. sk->sk_reuse = valbool;
> 7. } else
> 8. sock->ops->setsockopt = inet_dccp_ops->setsockopt =
> 9. inet_dccp_ops->setsockopt = sock_common_setsockopt ->
> 10. sk->sk_prot->setsockopt = dccp_v4_prot->setsockopt =
> 11. dccp_setsockopt
> 12. if (level != SOL_DCCP)
> 13. return inet_csk(sk)->icsk_af_ops->setsockopt() =
> 14. ip_setsockopt
> 15. return do_dccp_setsockopt()
>
> SO_REUSEADDR is handled in 4, if you pass SOL_SOCKET.
>
> If instead you pass SOL_DCCP we'll go down the rabbit hole till
> do_dccp_setsockopt() and SO_REUSEADDR, that is equal to 2, will be
> interpreted as DCCP_SOCKOPT_SERVICE, that is also equal to 2, so you'll
> be setting the service, not changing the SO_REUSEADDR setting.
That is completely unexpected. Particularly based on the implications of:
http://www.linux-foundation.org/en/Net:DCCP
>
> The problem here is that you need to use:
>
> setsockopt(fd, SOL_DCCP, DCCP_SOCKOPT_PACKET_SIZE, service,
> sizeof(service));
I guess since I was going off the URL above and it doesn't mention
that... :) I was just blythly ass-u-me-ing that DCCP was usable as a
"just swap the IPPROTO in your socket() call and go" sort of thing. And
wasn't expecting to have to make additional setsockopt() calls.
> Look forward for a happy DCCP netperf bencharking session!
Looks like some very basic stuff (whatever one gets passing SOL_DCCP to
the SO_REUSEADDR setting) is functioning in the top of trunk. I now
have to think about what to do wrt DCCP service types. If I should add
something to the parsing of -T dccp or if I should add yet another
command-line option :)
happy benchmarking,
rick jones
^ permalink raw reply
* Re: [Wireless, ath5k] 2.6.24-git13 9135f1901ee6449dfe338adf6e40e9c2025b8150
From: Jiri Slaby @ 2008-02-04 20:25 UTC (permalink / raw)
To: "Oliver Pinter (Pintér Olivér)"
Cc: netdev, ath5k-devel-xDcbHBWguxEUs3QNXV6qNA, John W. Linville,
Linux Kernel, Bruno Randolf, Andrew Morton, Linus Torvalds
In-Reply-To: <6101e8c40802040600q804e40cs97d0031920e58d9d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On 02/04/2008 03:00 PM, Oliver Pinter (Pintér Olivér) wrote:
> git top: 9135f1901ee6449dfe338adf6e40e9c2025b8150
>
> [ 399.582185] wpa_supplicant[4383]: segfault at 30 ip 080697ca sp
> bf87a690 error 4 in wpa_supplicant[8048000+4c000]
> [ 406.277199] wpa_supplicant[4384]: segfault at 30 ip 080697ca sp
> bfc13a30 error 4 in wpa_supplicant[8048000+4c000]
> [ 407.586375] wpa_supplicant[4385]: segfault at 30 ip 080697ca sp
> bf9ed000 error 4 in wpa_supplicant[8048000+4c000]
> [ 411.671037] wpa_supplicant[4386]: segfault at 30 ip 080697ca sp
> bf8f3710 error 4 in wpa_supplicant[8048000+4c000]
> [ 412.569843] wpa_supplicant[4387]: segfault at 30 ip 080697ca sp
> bfc19a30 error 4 in wpa_supplicant[8048000+4c000]
> [ 413.118874] wpa_supplicant[4388]: segfault at 30 ip 080697ca sp
> bfc9cab0 error 4 in wpa_supplicant[8048000+4c000]
Seems like wpa_supplicant is broken. Is this a regression?
> home:~# wpa_supplicant -Dwext -iath0 -c /etc/wpa_supplicant/wpa_supplicant.conf
ath0? udev renamed it?
> ioctl[SIOCSIWAUTH]: Operation not supported
> WEXT auth param 4 value 0x0 - bind(PF_UNIX): Address already in use
4 - 0x0 is TKIP, nothing we should worry about.
> ctrl_iface exists and seems to be in use - cannot override it
> Delete '/var/run/wpa_supplicant/ath0' manually if it is not used anymore
> Failed to initialize control interface '/var/run/wpa_supplicant'.
> You may have another wpa_supplicant process already running or the file was
> left by an unclean termination of wpa_supplicant in which case you will need
> to manually remove this file before starting wpa_supplicant again.
Have you?
I guess ltrace would help here. And maybe strace...
^ permalink raw reply
* Re: [PATCH 2.6.24-mm1] error compiling net driver NE2000/NE1000
From: Andrew Morton @ 2008-02-04 21:10 UTC (permalink / raw)
To: Pierre Peiffer; +Cc: linux-kernel, netdev, Alan Cox
In-Reply-To: <20080204162921.94984e72.pierre.peiffer@bull.net>
On Mon, 4 Feb 2008 16:29:21 +0100
Pierre Peiffer <pierre.peiffer@bull.net> wrote:
> Hi,
>
> When I compile the kernel 2.6.24-mm1 with:
> CONFIG_NET_ISA=y
> CONFIG_NE2000=y
>
> I have the following compile error:
> ...
> GEN .version
> CHK include/linux/compile.h
> UPD include/linux/compile.h
> CC init/version.o
> LD init/built-in.o
> LD .tmp_vmlinux1
> drivers/built-in.o: In function `ne_block_output':
> linux-2.6.24-mm1/drivers/net/ne.c:797: undefined reference to `NS8390_init'
> drivers/built-in.o: In function `ne_drv_resume':
> linux-2.6.24-mm1/drivers/net/ne.c:858: undefined reference to `NS8390_init'
> drivers/built-in.o: In function `ne_probe1':
> linux-2.6.24-mm1/drivers/net/ne.c:539: undefined reference to `NS8390_init'
> make[1]: *** [.tmp_vmlinux1] Error 1
> make: *** [sub-make] Error 2
Thanks for reporting this.
> As I saw that the file 8390p.c is compiled for this driver, but not the file
> 8390.c which contains this function NS8390_init(), I fixed this error with
> the following patch.
Alan's
8390-split-8390-support-into-a-pausing-and-a-non-pausing-driver-core.patch
would be a prime suspect. I assume this bug isn't present ing mainline or
in 2.6.24?
> As NS8390p_init() does the same thing than NS8390_init(), I suppose that this is the right fix ?
>
> Signed-off-by: Pierre Peiffer <pierre.peiffer@bull.net>
> ---
> drivers/net/ne.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> Index: b/drivers/net/ne.c
> ===================================================================
> --- a/drivers/net/ne.c
> +++ b/drivers/net/ne.c
> @@ -536,7 +536,7 @@ static int __init ne_probe1(struct net_d
> #ifdef CONFIG_NET_POLL_CONTROLLER
> dev->poll_controller = eip_poll;
> #endif
> - NS8390_init(dev, 0);
> + NS8390p_init(dev, 0);
>
> ret = register_netdev(dev);
> if (ret)
> @@ -794,7 +794,7 @@ retry:
> if (time_after(jiffies, dma_start + 2*HZ/100)) { /* 20ms */
> printk(KERN_WARNING "%s: timeout waiting for Tx RDC.\n", dev->name);
> ne_reset_8390(dev);
> - NS8390_init(dev,1);
> + NS8390p_init(dev,1);
> break;
> }
>
> @@ -855,7 +855,7 @@ static int ne_drv_resume(struct platform
>
> if (netif_running(dev)) {
> ne_reset_8390(dev);
> - NS8390_init(dev, 1);
> + NS8390p_init(dev, 1);
> netif_device_attach(dev);
> }
> return 0;
^ permalink raw reply
* Re: [PATCH] xircom_cb should return NETDEV_TX_BUSY when there are no descriptors available
From: Erik Mouw @ 2008-02-04 21:20 UTC (permalink / raw)
To: Jeff Garzik; +Cc: netdev, Waskiewicz Jr, Peter P, jamal
In-Reply-To: <20080204175653.GC16952@gateway.home>
[-- Attachment #1: Type: text/plain, Size: 874 bytes --]
On Mon, Feb 04, 2008 at 06:56:54PM +0100, Erik Mouw wrote:
> Changes in other networking paths uncovered a bug in the xircom_cb
> driver which made the kernel spew lots of the following error messages:
>
> BUG eth1 code -5 qlen 0
>
> It turned out that the driver returned -EIO when there was no
> descriptor available for sending packets. It should return
> NETDEV_TX_BUSY instead. This was discussed on the netdev list before,
> see http://thread.gmane.org/gmane.linux.network/84603 .
>
> Signed-off-by: Erik Mouw <mouw@nl.linux.org>
Forgot to tell: the patch is against 2.6.24 but should apply cleanly to
the latest git kernel. The xircom_cb driver appears to be orphaned so
I've send the patch to you.
Erik
--
They're all fools. Don't worry. Darwin may be slow, but he'll
eventually get them. -- Matthew Lammers in alt.sysadmin.recovery
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [Wireless, ath5k] 2.6.24-git13 9135f1901ee6449dfe338adf6e40e9c2025b8150
From: Oliver Pinter @ 2008-02-04 21:34 UTC (permalink / raw)
To: Jiri Slaby
Cc: John W. Linville, Bruno Randolf, netdev, Andrew Morton,
Linus Torvalds, Linux Kernel, ath5k-devel
In-Reply-To: <47A774AB.5060008@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1968 bytes --]
On 2/4/08, Jiri Slaby <jirislaby@gmail.com> wrote:
> On 02/04/2008 03:00 PM, Oliver Pinter (Pintér Olivér) wrote:
> > git top: 9135f1901ee6449dfe338adf6e40e9c2025b8150
> >
> > [ 399.582185] wpa_supplicant[4383]: segfault at 30 ip 080697ca sp
> > bf87a690 error 4 in wpa_supplicant[8048000+4c000]
> > [ 406.277199] wpa_supplicant[4384]: segfault at 30 ip 080697ca sp
> > bfc13a30 error 4 in wpa_supplicant[8048000+4c000]
> > [ 407.586375] wpa_supplicant[4385]: segfault at 30 ip 080697ca sp
> > bf9ed000 error 4 in wpa_supplicant[8048000+4c000]
> > [ 411.671037] wpa_supplicant[4386]: segfault at 30 ip 080697ca sp
> > bf8f3710 error 4 in wpa_supplicant[8048000+4c000]
> > [ 412.569843] wpa_supplicant[4387]: segfault at 30 ip 080697ca sp
> > bfc19a30 error 4 in wpa_supplicant[8048000+4c000]
> > [ 413.118874] wpa_supplicant[4388]: segfault at 30 ip 080697ca sp
> > bfc9cab0 error 4 in wpa_supplicant[8048000+4c000]
>
> Seems like wpa_supplicant is broken. Is this a regression?
yes, but with madwifi is all ok
>
> > home:~# wpa_supplicant -Dwext -iath0 -c
> /etc/wpa_supplicant/wpa_supplicant.conf
>
> ath0? udev renamed it?
yes
>
> > ioctl[SIOCSIWAUTH]: Operation not supported
> > WEXT auth param 4 value 0x0 - bind(PF_UNIX): Address already in use
>
> 4 - 0x0 is TKIP, nothing we should worry about.
>
> > ctrl_iface exists and seems to be in use - cannot override it
> > Delete '/var/run/wpa_supplicant/ath0' manually if it is not used anymore
> > Failed to initialize control interface '/var/run/wpa_supplicant'.
> > You may have another wpa_supplicant process already running or the file
> was
> > left by an unclean termination of wpa_supplicant in which case you will
> need
> > to manually remove this file before starting wpa_supplicant again.
>
> Have you?
yes
>
> I guess ltrace would help here. And maybe strace...
>
strace attached and wpa_supplicant more verbose output
--
Thanks,
Oliver
[-- Attachment #2: wpa_supplicant-log --]
[-- Type: text/plain, Size: 7242 bytes --]
Initializing interface 'ath0' conf '/etc/wpa_supplicant/wpa_supplicant.conf' driver 'wext' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/wpa_supplicant/wpa_supplicant.conf' -> '/etc/wpa_supplicant/wpa_supplicant.conf'
Reading configuration file '/etc/wpa_supplicant/wpa_supplicant.conf'
ctrl_interface='/var/run/wpa_supplicant'
Line: 5 - start of a new network block
ssid - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
scan_ssid=1 (0x1)
key_mgmt: 0x2
proto: 0x2
pairwise: 0x8
group: 0x8
PSK (ASCII passphrase) - hexdump_ascii(len=19): [REMOVED]
PSK (from passphrase) - hexdump(len=32): [REMOVED]
Priority group 0
id=0 ssid='inet@home'
Initializing interface (2) 'ath0'
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
EAPOL: External notification - portEnabled=0
EAPOL: External notification - portValid=0
SIOCGIWRANGE: WE(compiled)=22 WE(source)ioctl[SIOCSIWAUTH]: Operation not supported
WEXT auth param 4 value 0x0 - =21 enc_capa=0xf
capabilities: key_mgmt 0xf enc 0xf
WEXT: Operstate: linkmode=1, operstate=5
Own MAC address: 00:17:9a:d1:ee:f4
wpa_driver_wext_set_wpa
wpa_driver_wext_set_key: alg=0 key_idx=0 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=1 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=2 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=3 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_countermeasures
wpa_driver_wext_set_drop_unencrypted
Setting scan request: 0 sec 100000 usec
Added interface ath0
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b06 len=8
State: DISCONNECTED -> SCANNING
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
Trying to get current scan results first without requesting a new scan to speed up initial association
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 0 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group
[-- Attachment #3: wpa_supplicant-log-strace --]
[-- Type: text/plain, Size: 40498 bytes --]
execve("/sbin/wpa_supplicant", ["wpa_supplicant", "-Dwext", "-iath0", "-c", "/etc/wpa_supplicant/wpa_supplica"..., "-dd"], [/* 15 vars */]) = 0
uname({sys="Linux", node="home", ...}) = 0
brk(0) = 0x9a5d000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fa6000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=77517, ...}) = 0
mmap2(NULL, 77517, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f93000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/cmov/libssl.so.0.9.8", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\255"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=252768, ...}) = 0
mmap2(NULL, 255732, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f54000
mmap2(0xb7f8f000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3a) = 0xb7f8f000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/cmov/libcrypto.so.0.9.8", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300Y\3"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1270520, ...}) = 0
mmap2(NULL, 1282904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e1a000
mmap2(0xb7f3c000, 81920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x122) = 0xb7f3c000
mmap2(0xb7f50000, 13144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f50000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e19000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\f\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9592, ...}) = 0
mmap2(NULL, 12404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e15000
mmap2(0xb7e17000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7e17000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libdbus-1.so.3", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220K\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=203740, ...}) = 0
mmap2(NULL, 203036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7de3000
mmap2(0xb7e14000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x31) = 0xb7e14000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1241392, ...}) = 0
mmap2(NULL, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7cb2000
mmap2(0xb7dd9000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0xb7dd9000
mmap2(0xb7de0000, 10396, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7de0000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libz.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\26"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=78500, ...}) = 0
mmap2(NULL, 81456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7c9e000
mmap2(0xb7cb1000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12) = 0xb7cb1000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7c9d000
mprotect(0xb7dd9000, 20480, PROT_READ) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7c9d940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7f93000, 77517) = 0
brk(0) = 0x9a5d000
brk(0x9a7e000) = 0x9a7e000
open("/dev/null", O_RDWR) = 3
close(3) = 0
fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fa5000
open("/etc/wpa_supplicant/wpa_supplicant.conf", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=183, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fa4000
read(3, "# WPA-PSK/TKIP\n\nctrl_interface=/"..., 4096) = 183
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7fa4000, 4096) = 0
gettimeofday({1202160232, 545053}, NULL) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
socket(PF_NETLINK, SOCK_RAW, 0) = 4
bind(4, {sa_family=AF_NETLINK, pid=0, groups=00000001}, 12) = 0
ioctl(3, 0x8b36, 0xbffbc0cc) = -1 EOPNOTSUPP (Operation not supported)
ioctl(3, SIOCSIWMODE, 0xbffbc0d0) = 0
ioctl(3, SIOCGIFFLAGS, {ifr_name="ath0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_MULTICAST}) = 0
ioctl(3, SIOCSIFFLAGS, 0xbffbc0d0) = 0
ioctl(3, SIOCGIWRANGE, 0xbffbc138) = 0
write(1, "Initializing interface \'ath0\' co"..., 1024Initializing interface 'ath0' conf '/etc/wpa_supplicant/wpa_supplicant.conf' driver 'wext' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/wpa_supplicant/wpa_supplicant.conf' -> '/etc/wpa_supplicant/wpa_supplicant.conf'
Reading configuration file '/etc/wpa_supplicant/wpa_supplicant.conf'
ctrl_interface='/var/run/wpa_supplicant'
Line: 5 - start of a new network block
ssid - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
scan_ssid=1 (0x1)
key_mgmt: 0x2
proto: 0x2
pairwise: 0x8
group: 0x8
PSK (ASCII passphrase) - hexdump_ascii(len=19): [REMOVED]
PSK (from passphrase) - hexdump(len=32): [REMOVED]
Priority group 0
id=0 ssid='inet@home'
Initializing interface (2) 'ath0'
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
EAPOL: External notification - portEnabled=0
EAPOL: External notification - portValid=0
SIOCGIWRANGE: WE(compiled)=22 WE(source)) = 1024
access("/proc/net", R_OK) = 0
access("/proc/net/unix", R_OK) = 0
socket(PF_FILE, SOCK_DGRAM, 0) = 5
ioctl(5, SIOCGIFINDEX, {ifr_name="ath0", ifr_index=4}) = 0
close(5) = 0
send(4, "-\0\0\0\23\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0"..., 45, 0) = 45
socket(PF_PACKET, SOCK_DGRAM, 36488) = 5
ioctl(5, SIOCGIFINDEX, {ifr_name="ath0", ifr_index=4}) = 0
bind(5, {sa_family=AF_PACKET, proto=0x888e, if4, pkttype=PACKET_HOST, addr(0)={0, }, 20) = 0
ioctl(5, SIOCGIFHWADDR, {ifr_name="ath0", ifr_hwaddr=00:17:9a:d1:ee:f4}) = 0
ioctl(3, 0x8b32, 0xbffbc10c) = 0
ioctl(3, 0x8b34, 0xbffbc0ac) = 0
ioctl(3, 0x8b34, 0xbffbc0ac) = 0
ioctl(3, 0x8b34, 0xbffbc0ac) = 0
ioctl(3, 0x8b34, 0xbffbc0ac) = 0
ioctl(3, 0x8b32, 0xbffbc10c) = -1 EOPNOTSUPP (Operation not supported)
dup(2) = 6
fcntl64(6, F_GETFL) = 0x1 (flags O_WRONLY)
close(6) = 0
write(2, "ioctl[SIOCSIWAUTH]: Operation no"..., 44ioctl[SIOCSIWAUTH]: Operation not supported
) = 44
write(2, "WEXT auth param 4 value 0x0 - ", 30WEXT auth param 4 value 0x0 - ) = 30
ioctl(3, 0x8b32, 0xbffbc10c) = 0
gettimeofday({1202160232, 553652}, NULL) = 0
mkdir("/var/run/wpa_supplicant", 0770) = -1 EEXIST (File exists)
socket(PF_FILE, SOCK_DGRAM, 0) = 6
bind(6, {sa_family=AF_FILE, path="/var/run/wpa_supplicant/ath0"}, 110) = -1 EADDRINUSE (Address already in use)
write(2, "bind(PF_UNIX): Address already i"..., 38bind(PF_UNIX): Address already in use
) = 38
connect(6, {sa_family=AF_FILE, path="/var/run/wpa_supplicant/ath0"}, 110) = -1 ECONNREFUSED (Connection refused)
unlink("/var/run/wpa_supplicant/ath0") = 0
bind(6, {sa_family=AF_FILE, path="/var/run/wpa_supplicant/ath0"}, 110) = 0
chmod("/var/run/wpa_supplicant/ath0", 0770) = 0
rt_sigaction(SIGINT, {0x80503c0, [INT], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {0x80503c0, [TERM], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGHUP, {0x80503c0, [HUP], SA_RESTART}, {SIG_DFL}, 8) = 0
gettimeofday({1202160232, 554720}, NULL) = 0
select(7, [4 5 6], [], [], {0, 98932}) = 1 (in [4], left {0, 98932})
gettimeofday({1202160232, 554856}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160232, 555119}, NULL) = 0
select(7, [4 5 6], [], [], {0, 98533}) = 0 (Timeout)
gettimeofday({1202160232, 653186}, NULL) = 0
gettimeofday({1202160232, 653234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 418}) = 0 (Timeout)
gettimeofday({1202160232, 654422}, NULL) = 0
write(1, "=21 enc_capa=0xf\n capabilities:"..., 1024=21 enc_capa=0xf
capabilities: key_mgmt 0xf enc 0xf
WEXT: Operstate: linkmode=1, operstate=5
Own MAC address: 00:17:9a:d1:ee:f4
wpa_driver_wext_set_wpa
wpa_driver_wext_set_key: alg=0 key_idx=0 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=1 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=2 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=3 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_countermeasures
wpa_driver_wext_set_drop_unencrypted
Setting scan request: 0 sec 100000 usec
Using existing control interface directory.
ctrl_iface exists, but does not allow connections - assuming it was leftover from forced program termination
Successfully replaced leftover ctrl_iface socket '/var/run/wpa_supplicant/ath0'
Added interface ath0
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b06 len=8
State: DISCONNECTED -> SCANNING
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 ) = 1024
ioctl(3, SIOCGIWSCAN, 0xbffbbf40) = 0
gettimeofday({1202160232, 654649}, NULL) = 0
gettimeofday({1202160232, 654697}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160232, 654806}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160232, 654916}, NULL) = 0
gettimeofday({1202160232, 654963}, NULL) = 0
select(7, [4 5 6], [], [], {0, 890090}) = 0 (Timeout)
gettimeofday({1202160233, 545406}, NULL) = 0
gettimeofday({1202160233, 545463}, NULL) = 0
gettimeofday({1202160233, 545724}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999739}) = 1 (in [4], left {0, 849000})
gettimeofday({1202160233, 697156}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160233, 697818}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160233, 697936}, NULL) = 0
select(7, [4 5 6], [], [], {0, 847527}) = 0 (Timeout)
gettimeofday({1202160234, 545181}, NULL) = 0
gettimeofday({1202160234, 545233}, NULL) = 0
select(7, [4 5 6], [], [], {0, 230}) = 0 (Timeout)
gettimeofday({1202160234, 546427}, NULL) = 0
gettimeofday({1202160234, 546479}, NULL) = 0
gettimeofday({1202160234, 546547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160235, 546189}, NULL) = 0
gettimeofday({1202160235, 546241}, NULL) = 0
select(7, [4 5 6], [], [], {0, 238}) = 0 (Timeout)
gettimeofday({1202160235, 547426}, NULL) = 0
gettimeofday({1202160235, 547479}, NULL) = 0
gettimeofday({1202160235, 547547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160236, 547187}, NULL) = 0
gettimeofday({1202160236, 547239}, NULL) = 0
select(7, [4 5 6], [], [], {0, 240}) = 0 (Timeout)
gettimeofday({1202160236, 548427}, NULL) = 0
gettimeofday({1202160236, 548479}, NULL) = 0
gettimeofday({1202160236, 548550}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999929}) = 0 (Timeout)
gettimeofday({1202160237, 548189}, NULL) = 0
gettimeofday({1202160237, 548241}, NULL) = 0
select(7, [4 5 6], [], [], {0, 238}) = 0 (Timeout)
gettimeofday({1202160237, 549427}, NULL) = 0
gettimeofday({1202160237, 549479}, NULL) = 0
gettimeofday({1202160237, 549550}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999929}) = 0 (Timeout)
gettimeofday({1202160238, 549180}, NULL) = 0
gettimeofday({1202160238, 549232}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247}) = 0 (Timeout)
gettimeofday({1202160238, 550427}, NULL) = 0
gettimeofday({1202160238, 550479}, NULL) = 0
gettimeofday({1202160238, 550550}, NULL) = 0
select(7, [4 5 6], [], [], {0, 147268}) = 0 (Timeout)
gettimeofday({1202160238, 698182}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160238, 698299}, NULL) = 0
gettimeofday({1202160238, 698351}, NULL) = 0
select(7, [4 5 6], [], [], {0, 852128}) = 0 (Timeout)
gettimeofday({1202160239, 551668}, NULL) = 0
gettimeofday({1202160239, 551945}, NULL) = 0
gettimeofday({1202160239, 552238}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999707}) = 1 (in [4], left {0, 839000})
gettimeofday({1202160239, 713640}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160239, 714578}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160239, 715191}, NULL) = 0
select(7, [4 5 6], [], [], {0, 836754}) = 0 (Timeout)
gettimeofday({1202160240, 552342}, NULL) = 0
gettimeofday({1202160240, 552614}, NULL) = 0
gettimeofday({1202160240, 552682}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160241, 552429}, NULL) = 0
gettimeofday({1202160241, 552482}, NULL) = 0
select(7, [4 5 6], [], [], {0, 132}) = 0 (Timeout)
gettimeofday({1202160241, 553427}, NULL) = 0
gettimeofday({1202160241, 553479}, NULL) = 0
gettimeofday({1202160241, 553547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160242, 553181}, NULL) = 0
gettimeofday({1202160242, 553233}, NULL) = 0
select(7, [4 5 6], [], [], {0, 246}) = 0 (Timeout)
gettimeofday({1202160242, 554427}, NULL) = 0
gettimeofday({1202160242, 554480}, NULL) = 0
gettimeofday({1202160242, 554547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160243, 554186}, NULL) = 0
gettimeofday({1202160243, 554238}, NULL) = 0
select(7, [4 5 6], [], [], {0, 242}) = 0 (Timeout)
gettimeofday({1202160243, 555427}, NULL) = 0
gettimeofday({1202160243, 555479}, NULL) = 0
gettimeofday({1202160243, 555547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160244, 555186}, NULL) = 0
gettimeofday({1202160244, 555239}, NULL) = 0
select(7, [4 5 6], [], [], {0, 240}) = 0 (Timeout)
gettimeofday({1202160244, 556427}, NULL) = 0
gettimeofday({1202160244, 556479}, NULL) = 0
gettimeofday({1202160244, 556547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 158031}) = 0 (Timeout)
gettimeofday({1202160244, 715190}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160244, 715303}, NULL) = 0
gettimeofday({1202160244, 715356}, NULL) = 0
select(7, [4 5 6], [], [], {0, 841123}) = 0 (Timeout)
gettimeofday({1202160245, 557433}, NULL) = 0
gettimeofday({1202160245, 557488}, NULL) = 0
gettimeofday({1202160245, 557558}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999930}) = 1 (in [4], left {0, 812000})
gettimeofday({1202160245, 745454}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
write(1, " inet@home \nTr"..., 1024 inet@home
Trying to get current scan results first without requesting a new scan to speed up initial association
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 0 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event:) = 1024
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160245, 745806}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160245, 745926}, NULL) = 0
select(7, [4 5 6], [], [], {0, 811562}) = 0 (Timeout)
gettimeofday({1202160246, 557184}, NULL) = 0
gettimeofday({1202160246, 557237}, NULL) = 0
select(7, [4 5 6], [], [], {0, 251}) = 0 (Timeout)
gettimeofday({1202160246, 558428}, NULL) = 0
gettimeofday({1202160246, 558482}, NULL) = 0
gettimeofday({1202160246, 558551}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160247, 558183}, NULL) = 0
gettimeofday({1202160247, 558236}, NULL) = 0
select(7, [4 5 6], [], [], {0, 246}) = 0 (Timeout)
gettimeofday({1202160247, 559427}, NULL) = 0
gettimeofday({1202160247, 559480}, NULL) = 0
gettimeofday({1202160247, 559547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160248, 559187}, NULL) = 0
gettimeofday({1202160248, 559239}, NULL) = 0
select(7, [4 5 6], [], [], {0, 241}) = 0 (Timeout)
gettimeofday({1202160248, 560438}, NULL) = 0
gettimeofday({1202160248, 560491}, NULL) = 0
gettimeofday({1202160248, 560559}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160249, 560189}, NULL) = 0
gettimeofday({1202160249, 560241}, NULL) = 0
select(7, [4 5 6], [], [], {0, 250}) = 0 (Timeout)
gettimeofday({1202160249, 561427}, NULL) = 0
gettimeofday({1202160249, 561480}, NULL) = 0
gettimeofday({1202160249, 561547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160250, 561188}, NULL) = 0
gettimeofday({1202160250, 561241}, NULL) = 0
select(7, [4 5 6], [], [], {0, 239}) = 0 (Timeout)
gettimeofday({1202160250, 562427}, NULL) = 0
gettimeofday({1202160250, 562480}, NULL) = 0
gettimeofday({1202160250, 562548}, NULL) = 0
select(7, [4 5 6], [], [], {0, 183258}) = 0 (Timeout)
gettimeofday({1202160250, 746180}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160250, 746302}, NULL) = 0
gettimeofday({1202160250, 746355}, NULL) = 0
select(7, [4 5 6], [], [], {0, 816125}) = 0 (Timeout)
gettimeofday({1202160251, 563182}, NULL) = 0
gettimeofday({1202160251, 563235}, NULL) = 0
gettimeofday({1202160251, 563303}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 1 (in [4], left {0, 802000})
gettimeofday({1202160251, 761461}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160251, 761738}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160251, 761856}, NULL) = 0
select(7, [4 5 6], [], [], {0, 801379}) = 0 (Timeout)
gettimeofday({1202160252, 563181}, NULL) = 0
gettimeofday({1202160252, 563234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 1}) = 0 (Timeout)
gettimeofday({1202160252, 564427}, NULL) = 0
gettimeofday({1202160252, 564480}, NULL) = 0
gettimeofday({1202160252, 564548}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160253, 564181}, NULL) = 0
gettimeofday({1202160253, 564233}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247}) = 0 (Timeout)
gettimeofday({1202160253, 565426}, NULL) = 0
gettimeofday({1202160253, 565478}, NULL) = 0
gettimeofday({1202160253, 565546}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160254, 565181}, NULL) = 0
gettimeofday({1202160254, 565234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 244}) = 0 (Timeout)
gettimeofday({1202160254, 566427}, NULL) = 0
gettimeofday({1202160254, 566480}, NULL) = 0
gettimeofday({1202160254, 566547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160255, 566467}, NULL) = 0
gettimeofday({1202160255, 566552}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160255, 566737}, NULL) = 0
gettimeofday({1202160255, 566821}, NULL) = 0
gettimeofday({1202160255, 566921}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999900}) = 0 (Timeout)
gettimeofday({1202160256, 566216}, NULL) = 0
gettimeofday({1202160256, 566301}, NULL) = 0
select(7, [4 5 6], [], [], {0, 520}) = 0 (Timeout)
gettimeofday({1202160256, 567445}, NULL) = 0
gettimeofday({1202160256, 567531}, NULL) = 0
gettimeofday({1202160256, 567633}, NULL) = 0
select(7, [4 5 6], [], [], {0, 194105}) = 0 (Timeout)
gettimeofday({1202160256, 762447}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160256, 762629}, NULL) = 0
gettimeofday({1202160256, 762716}, NULL) = 0
select(7, [4 5 6], [], [], {0, 804815}) = 0 (Timeout)
gettimeofday({1202160257, 567203}, NULL) = 0
gettimeofday({1202160257, 567289}, NULL) = 0
select(7, [4 5 6], [], [], {0, 242}) = 0 (Timeout)
gettimeofday({1202160257, 568445}, NULL) = 0
gettimeofday({1202160257, 568531}, NULL) = 0
gettimeofday({1202160257, 568632}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999899}) = 1 (in [4], left {0, 791000})
gettimeofday({1202160257, 777476}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160257, 777862}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160257, 778053}, NULL) = 0
select(7, [4 5 6], [], [], {0, 790478}) = 0 (Timeout)
gettimeofday({1202160258, 569211}, NULL) = 0
gettimeofday({1202160258, 569298}, NULL) = 0
gettimeofday({1202160258, 569408}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999890}) = 0 (Timeout)
gettimeofday({1202160259, 569210}, NULL) = 0
gettimeofday({1202160259, 569296}, NULL) = 0
select(7, [4 5 6], [], [], {0, 2}) = 0 (Timeout)
gettimeofday({1202160259, 570446}, NULL) = 0
gettimeofday({1202160259, 570532}, NULL) = 0
gettimeofday({1202160259, 570633}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999899}) = 0 (Timeout)
gettimeofday({1202160260, 570201}, NULL) = 0
gettimeofday({1202160260, 570288}, NULL) = 0
select(7, [4 5 6], [], [], {0, 244}) = 0 (Timeout)
gettimeofday({1202160260, 571446}, NULL) = 0
gettimeofday({1202160260, 571532}, NULL) = 0
gettimeofday({1202160260, 571634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160261, 571202}, NULL) = 0
gettimeofday({1202160261, 571290}, NULL) = 0
select(7, [4 5 6], [], [], {0, 242}) = 0 (Timeout)
gettimeofday({1202160261, 572446}, NULL) = 0
gettimeofday({1202160261, 572532}, NULL) = 0
gettimeofday({1202160261, 572634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160262, 572219}, NULL) = 0
gettimeofday({1202160262, 572305}, NULL) = 0
select(7, [4 5 6], [], [], {0, 227}) = 0 (Timeout)
gettimeofday({1202160262, 573444}, NULL) = 0
gettimeofday({1202160262, 573548}, NULL) = 0
gettimeofday({1202160262, 573651}, NULL) = 0
select(7, [4 5 6], [], [], {0, 204211}) = 0 (Timeout)
gettimeofday({1202160262, 778208}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160262, 778407}, NULL) = 0
gettimeofday({1202160262, 778494}, NULL) = 0
select(7, [4 5 6], [], [], {0, 795054}) = 0 (Timeout)
gettimeofday({1202160263, 574209}, NULL) = 0
gettimeofday({1202160263, 574298}, NULL) = 0
gettimeofday({1202160263, 574412}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999886}) = 1 (in [4], left {0, 781000})
gettimeofday({1202160263, 793478}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
write(1, " cmd=0x8b19 len=8\nReceived 0 byt"..., 1024 cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b1) = 1024
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160263, 794102}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160263, 794297}, NULL) = 0
select(7, [4 5 6], [], [], {0, 780001}) = 0 (Timeout)
gettimeofday({1202160264, 575204}, NULL) = 0
gettimeofday({1202160264, 575293}, NULL) = 0
gettimeofday({1202160264, 575404}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999889}) = 0 (Timeout)
gettimeofday({1202160265, 576950}, NULL) = 0
gettimeofday({1202160265, 577040}, NULL) = 0
gettimeofday({1202160265, 578320}, NULL) = 0
select(7, [4 5 6], [], [], {0, 998720}) = 0 (Timeout)
gettimeofday({1202160266, 577219}, NULL) = 0
gettimeofday({1202160266, 577309}, NULL) = 0
gettimeofday({1202160266, 577420}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999889}) = 0 (Timeout)
gettimeofday({1202160267, 577455}, NULL) = 0
gettimeofday({1202160267, 577544}, NULL) = 0
gettimeofday({1202160267, 577647}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999897}) = 0 (Timeout)
gettimeofday({1202160268, 577203}, NULL) = 0
gettimeofday({1202160268, 577291}, NULL) = 0
select(7, [4 5 6], [], [], {0, 253}) = 0 (Timeout)
gettimeofday({1202160268, 578447}, NULL) = 0
gettimeofday({1202160268, 578534}, NULL) = 0
gettimeofday({1202160268, 578637}, NULL) = 0
select(7, [4 5 6], [], [], {0, 215465}) = 0 (Timeout)
gettimeofday({1202160268, 794200}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160268, 794393}, NULL) = 0
gettimeofday({1202160268, 794481}, NULL) = 0
select(7, [4 5 6], [], [], {0, 784053}) = 0 (Timeout)
gettimeofday({1202160269, 579206}, NULL) = 0
gettimeofday({1202160269, 579295}, NULL) = 0
gettimeofday({1202160269, 579406}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999889}) = 1 (in [4], left {0, 768000})
gettimeofday({1202160269, 811477}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160269, 811871}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160269, 812065}, NULL) = 0
select(7, [4 5 6], [], [], {0, 767230}) = 0 (Timeout)
gettimeofday({1202160270, 580452}, NULL) = 0
gettimeofday({1202160270, 580541}, NULL) = 0
gettimeofday({1202160270, 580645}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999896}) = 0 (Timeout)
gettimeofday({1202160271, 580204}, NULL) = 0
gettimeofday({1202160271, 580291}, NULL) = 0
select(7, [4 5 6], [], [], {0, 250}) = 0 (Timeout)
gettimeofday({1202160271, 581445}, NULL) = 0
gettimeofday({1202160271, 581531}, NULL) = 0
gettimeofday({1202160271, 581633}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160272, 581202}, NULL) = 0
gettimeofday({1202160272, 581289}, NULL) = 0
select(7, [4 5 6], [], [], {0, 242}) = 0 (Timeout)
gettimeofday({1202160272, 582445}, NULL) = 0
gettimeofday({1202160272, 582532}, NULL) = 0
gettimeofday({1202160272, 582634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160273, 582203}, NULL) = 0
gettimeofday({1202160273, 582290}, NULL) = 0
select(7, [4 5 6], [], [], {0, 242}) = 0 (Timeout)
gettimeofday({1202160273, 583446}, NULL) = 0
gettimeofday({1202160273, 583532}, NULL) = 0
gettimeofday({1202160273, 583633}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999899}) = 0 (Timeout)
gettimeofday({1202160274, 583203}, NULL) = 0
gettimeofday({1202160274, 583290}, NULL) = 0
select(7, [4 5 6], [], [], {0, 242}) = 0 (Timeout)
gettimeofday({1202160274, 584446}, NULL) = 0
gettimeofday({1202160274, 584532}, NULL) = 0
gettimeofday({1202160274, 584634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 227237}) = 0 (Timeout)
gettimeofday({1202160274, 812198}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160274, 812395}, NULL) = 0
gettimeofday({1202160274, 812482}, NULL) = 0
select(7, [4 5 6], [], [], {0, 772050}) = 0 (Timeout)
gettimeofday({1202160275, 585460}, NULL) = 0
gettimeofday({1202160275, 585548}, NULL) = 0
gettimeofday({1202160275, 585650}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 1 (in [4], left {0, 748000})
gettimeofday({1202160275, 837472}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160275, 837858}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160275, 838049}, NULL) = 0
select(7, [4 5 6], [], [], {0, 747499}) = 0 (Timeout)
gettimeofday({1202160276, 586453}, NULL) = 0
gettimeofday({1202160276, 586541}, NULL) = 0
gettimeofday({1202160276, 586644}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999897}) = 0 (Timeout)
gettimeofday({1202160277, 586202}, NULL) = 0
gettimeofday({1202160277, 586289}, NULL) = 0
select(7, [4 5 6], [], [], {0, 252}) = 0 (Timeout)
gettimeofday({1202160277, 587446}, NULL) = 0
gettimeofday({1202160277, 587532}, NULL) = 0
gettimeofday({1202160277, 587634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160278, 587201}, NULL) = 0
gettimeofday({1202160278, 587287}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160278, 588446}, NULL) = 0
gettimeofday({1202160278, 588533}, NULL) = 0
gettimeofday({1202160278, 588634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999899}) = 0 (Timeout)
gettimeofday({1202160279, 588202}, NULL) = 0
gettimeofday({1202160279, 588290}, NULL) = 0
select(7, [4 5 6], [], [], {0, 243}) = 0 (Timeout)
gettimeofday({1202160279, 589446}, NULL) = 0
gettimeofday({1202160279, 589532}, NULL) = 0
gettimeofday({1202160279, 589634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160280, 589205}, NULL) = 0
gettimeofday({1202160280, 589292}, NULL) = 0
select(7, [4 5 6], [], [], {0, 240}) = 0 (Timeout)
gettimeofday({1202160280, 590446}, NULL) = 0
gettimeofday({1202160280, 590533}, NULL) = 0
gettimeofday({1202160280, 590634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247224}) = 0 (Timeout)
gettimeofday({1202160280, 838198}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160280, 838406}, NULL) = 0
gettimeofday({1202160280, 838493}, NULL) = 0
select(7, [4 5 6], [], [], {0, 752040}) = 0 (Timeout)
gettimeofday({1202160281, 591453}, NULL) = 0
gettimeofday({1202160281, 591542}, NULL) = 0
gettimeofday({1202160281, 591644}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 1 (in [4], left {0, 738000})
gettimeofday({1202160281, 853480}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
write(1, "9 len=8\nReceived 0 bytes of scan"..., 10249 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (specific SSID)
Scan SSID - hexdump_ascii(len=9):
69 6e 65 74 40 68 6f 6d 65 inet@home
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
Wireless event: cmd=0x8b19 len=8
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
No suitable ) = 1024
gettimeofday({1202160281, 854102}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160281, 854294}, NULL) = 0
select(7, [4 5 6], [], [], {0, 737248}) = 0 (Timeout)
gettimeofday({1202160282, 592202}, NULL) = 0
gettimeofday({1202160282, 592290}, NULL) = 0
gettimeofday({1202160282, 592402}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999888}) = 0 (Timeout)
gettimeofday({1202160283, 592210}, NULL) = 0
gettimeofday({1202160283, 592297}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160283, 592491}, NULL) = 0
gettimeofday({1202160283, 592577}, NULL) = 0
gettimeofday({1202160283, 592679}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160284, 592210}, NULL) = 0
gettimeofday({1202160284, 592297}, NULL) = 0
select(7, [4 5 6], [], [], {0, 280}) = 0 (Timeout)
gettimeofday({1202160284, 593445}, NULL) = 0
gettimeofday({1202160284, 593532}, NULL) = 0
gettimeofday({1202160284, 593634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160285, 593451}, NULL) = 0
gettimeofday({1202160285, 593538}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160285, 593725}, NULL) = 0
gettimeofday({1202160285, 593810}, NULL) = 0
gettimeofday({1202160285, 593912}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160286, 593452}, NULL) = 0
gettimeofday({1202160286, 593539}, NULL) = 0
select(7, [4 5 6], [], [], {0, 271}) = 0 (Timeout)
gettimeofday({1202160286, 594445}, NULL) = 0
gettimeofday({1202160286, 594531}, NULL) = 0
gettimeofday({1202160286, 594633}, NULL) = 0
select(7, [4 5 6], [], [], {0, 259469}) = 0 (Timeout)
gettimeofday({1202160286, 854199}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160286, 854396}, NULL) = 0
gettimeofday({1202160286, 854482}, NULL) = 0
select(7, [4 5 6], [], [], {0, 740049}) = 0 (Timeout)
gettimeofday({1202160287, 595455}, NULL) = 0
gettimeofday({1202160287, 595542}, NULL) = 0
gettimeofday({1202160287, 595643}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999899}) = 1 (in [4], left {0, 726000})
gettimeofday({1202160287, 869612}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160287, 870626}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160287, 871239}, NULL) = 0
select(7, [4 5 6], [], [], {0, 724303}) = 0 (Timeout)
gettimeofday({1202160288, 596339}, NULL) = 0
gettimeofday({1202160288, 596611}, NULL) = 0
gettimeofday({1202160288, 596680}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160289, 596182}, NULL) = 0
gettimeofday({1202160289, 596234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 377}) = 0 (Timeout)
gettimeofday({1202160289, 597428}, NULL) = 0
gettimeofday({1202160289, 597480}, NULL) = 0
gettimeofday({1202160289, 597547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160290, 597181}, NULL) = 0
gettimeofday({1202160290, 597233}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247}) = 0 (Timeout)
gettimeofday({1202160290, 598427}, NULL) = 0
gettimeofday({1202160290, 598480}, NULL) = 0
gettimeofday({1202160290, 598547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160291, 598187}, NULL) = 0
gettimeofday({1202160291, 598240}, NULL) = 0
select(7, [4 5 6], [], [], {0, 240}) = 0 (Timeout)
gettimeofday({1202160291, 600191}, NULL) = 0
gettimeofday({1202160291, 600243}, NULL) = 0
gettimeofday({1202160291, 600311}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160292, 600429}, NULL) = 0
gettimeofday({1202160292, 600482}, NULL) = 0
gettimeofday({1202160292, 600549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 270077}) = 0 (Timeout)
gettimeofday({1202160292, 871179}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbffbc0ac) = 0
gettimeofday({1202160292, 871292}, NULL) = 0
gettimeofday({1202160292, 871345}, NULL) = 0
select(7, [4 5 6], [], [], {0, 729137}) = 0 (Timeout)
gettimeofday({1202160293, 601185}, NULL) = 0
gettimeofday({1202160293, 601239}, NULL) = 0
gettimeofday({1202160293, 601308}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 1 (in [4], left {0, 715000})
gettimeofday({1202160293, 886456}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbffb9d70) = 0
gettimeofday({1202160293, 886735}, NULL) = 0
recvfrom(4, 0xbffb9f78, 8192, 64, 0xbffbc12c, 0xbffbc138) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160293, 886854}, NULL) = 0
select(7, [4 5 6], [], [], {0, 714385}) = 0 (Timeout)
gettimeofday({1202160294, 601183}, NULL) = 0
gettimeofday({1202160294, 601237}, NULL) = 0
select(7, [4 5 6], [], [], {0, 2}) = 0 (Timeout)
gettimeofday({1202160294, 602440}, NULL) = 0
gettimeofday({1202160294, 602494}, NULL) = 0
gettimeofday({1202160294, 602563}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160295, 602190}, NULL) = 0
gettimeofday({1202160295, 602243}, NULL) = 0
select(7, [4 5 6], [], [], {0, 251}) = 0 (Timeout)
gettimeofday({1202160295, 603439}, NULL) = 0
gettimeofday({1202160295, 603491}, NULL) = 0
gettimeofday({1202160295, 603559}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160296, 603183}, NULL) = 0
gettimeofday({1202160296, 603236}, NULL) = 0
select(7, [4 5 6], [], [], {0, 255}) = 0 (Timeout)
gettimeofday({1202160296, 604427}, NULL) = 0
gettimeofday({1202160296, 604480}, NULL) = 0
gettimeofday({1202160296, 604549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}
[-- Attachment #4: wpa_supplicant-strace --]
[-- Type: text/plain, Size: 28821 bytes --]
execve("/sbin/wpa_supplicant", ["wpa_supplicant", "-Dwext", "-iath0", "-c", "/etc/wpa_supplicant/wpa_supplica"...], [/* 15 vars */]) = 0
uname({sys="Linux", node="home", ...}) = 0
brk(0) = 0x9400000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f11000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=77517, ...}) = 0
mmap2(NULL, 77517, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7efe000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/cmov/libssl.so.0.9.8", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\255"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=252768, ...}) = 0
mmap2(NULL, 255732, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ebf000
mmap2(0xb7efa000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3a) = 0xb7efa000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/cmov/libcrypto.so.0.9.8", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300Y\3"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1270520, ...}) = 0
mmap2(NULL, 1282904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d85000
mmap2(0xb7ea7000, 81920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x122) = 0xb7ea7000
mmap2(0xb7ebb000, 13144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7ebb000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d84000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\f\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9592, ...}) = 0
mmap2(NULL, 12404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d80000
mmap2(0xb7d82000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7d82000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libdbus-1.so.3", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220K\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=203740, ...}) = 0
mmap2(NULL, 203036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d4e000
mmap2(0xb7d7f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x31) = 0xb7d7f000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1241392, ...}) = 0
mmap2(NULL, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7c1d000
mmap2(0xb7d44000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0xb7d44000
mmap2(0xb7d4b000, 10396, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7d4b000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libz.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\26"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=78500, ...}) = 0
mmap2(NULL, 81456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7c09000
mmap2(0xb7c1c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12) = 0xb7c1c000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7c08000
mprotect(0xb7d44000, 20480, PROT_READ) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7c08940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7efe000, 77517) = 0
brk(0) = 0x9400000
brk(0x9421000) = 0x9421000
open("/dev/null", O_RDWR) = 3
close(3) = 0
open("/etc/wpa_supplicant/wpa_supplicant.conf", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=183, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f10000
read(3, "# WPA-PSK/TKIP\n\nctrl_interface=/"..., 4096) = 183
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7f10000, 4096) = 0
gettimeofday({1202160306, 209689}, NULL) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
socket(PF_NETLINK, SOCK_RAW, 0) = 4
bind(4, {sa_family=AF_NETLINK, pid=0, groups=00000001}, 12) = 0
ioctl(3, 0x8b36, 0xbfb2943c) = -1 EOPNOTSUPP (Operation not supported)
ioctl(3, SIOCSIWMODE, 0xbfb29440) = 0
ioctl(3, SIOCGIFFLAGS, {ifr_name="ath0", ifr_flags=IFF_BROADCAST|IFF_MULTICAST}) = 0
ioctl(3, SIOCSIFFLAGS, 0xbfb29440) = 0
ioctl(3, SIOCGIWRANGE, 0xbfb294a8) = 0
access("/proc/net", R_OK) = 0
access("/proc/net/unix", R_OK) = 0
socket(PF_FILE, SOCK_DGRAM, 0) = 5
ioctl(5, SIOCGIFINDEX, {ifr_name="ath0", ifr_index=4}) = 0
close(5) = 0
send(4, "-\0\0\0\23\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0"..., 45, 0) = 45
socket(PF_PACKET, SOCK_DGRAM, 36488) = 5
ioctl(5, SIOCGIFINDEX, {ifr_name="ath0", ifr_index=4}) = 0
bind(5, {sa_family=AF_PACKET, proto=0x888e, if4, pkttype=PACKET_HOST, addr(0)={0, }, 20) = 0
ioctl(5, SIOCGIFHWADDR, {ifr_name="ath0", ifr_hwaddr=00:17:9a:d1:ee:f4}) = 0
ioctl(3, 0x8b32, 0xbfb2947c) = 0
ioctl(3, 0x8b34, 0xbfb2941c) = 0
ioctl(3, 0x8b34, 0xbfb2941c) = 0
ioctl(3, 0x8b34, 0xbfb2941c) = 0
ioctl(3, 0x8b34, 0xbfb2941c) = 0
ioctl(3, 0x8b32, 0xbfb2947c) = -1 EOPNOTSUPP (Operation not supported)
dup(2) = 6
fcntl64(6, F_GETFL) = 0x1 (flags O_WRONLY)
close(6) = 0
write(2, "ioctl[SIOCSIWAUTH]: Operation no"..., 44ioctl[SIOCSIWAUTH]: Operation not supported
) = 44
write(2, "WEXT auth param 4 value 0x0 - ", 30WEXT auth param 4 value 0x0 - ) = 30
ioctl(3, 0x8b32, 0xbfb2947c) = 0
gettimeofday({1202160306, 273212}, NULL) = 0
mkdir("/var/run/wpa_supplicant", 0770) = 0
socket(PF_FILE, SOCK_DGRAM, 0) = 6
bind(6, {sa_family=AF_FILE, path="/var/run/wpa_supplicant/ath0"}, 110) = 0
chmod("/var/run/wpa_supplicant/ath0", 0770) = 0
rt_sigaction(SIGINT, {0x80503c0, [INT], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {0x80503c0, [TERM], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGHUP, {0x80503c0, [HUP], SA_RESTART}, {SIG_DFL}, 8) = 0
gettimeofday({1202160306, 273930}, NULL) = 0
select(7, [4 5 6], [], [], {0, 99282}) = 1 (in [4], left {0, 99282})
gettimeofday({1202160306, 274076}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\2\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
recvfrom(4, "\370\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0!\3\3\0\0\0C\20"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 248
recvfrom(4, "\364\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 244
recvfrom(4, 0xbfb272e8, 8192, 64, 0xbfb2949c, 0xbfb294a8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160306, 274665}, NULL) = 0
select(7, [4 5 6], [], [], {0, 98547}) = 0 (Timeout)
gettimeofday({1202160306, 373199}, NULL) = 0
gettimeofday({1202160306, 373253}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160306, 373392}, NULL) = 0
ioctl(3, SIOCGIWSCAN, 0xbfb292b0) = 0
gettimeofday({1202160306, 374445}, NULL) = 0
gettimeofday({1202160306, 374691}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160306, 375201}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb2941c) = 0
gettimeofday({1202160306, 375707}, NULL) = 0
gettimeofday({1202160306, 375951}, NULL) = 0
select(7, [4 5 6], [], [], {0, 833738}) = 0 (Timeout)
gettimeofday({1202160307, 219209}, NULL) = 0
gettimeofday({1202160307, 219268}, NULL) = 0
gettimeofday({1202160307, 219342}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999926}) = 1 (in [4], left {0, 829000})
gettimeofday({1202160307, 390427}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb270e0) = 0
gettimeofday({1202160307, 390729}, NULL) = 0
recvfrom(4, 0xbfb272e8, 8192, 64, 0xbfb2949c, 0xbfb294a8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160307, 390852}, NULL) = 0
select(7, [4 5 6], [], [], {0, 828416}) = 0 (Timeout)
gettimeofday({1202160308, 219185}, NULL) = 0
gettimeofday({1202160308, 219240}, NULL) = 0
select(7, [4 5 6], [], [], {0, 28}) = 0 (Timeout)
gettimeofday({1202160308, 220180}, NULL) = 0
gettimeofday({1202160308, 220234}, NULL) = 0
gettimeofday({1202160308, 220304}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999930}) = 0 (Timeout)
gettimeofday({1202160309, 220184}, NULL) = 0
gettimeofday({1202160309, 220238}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160309, 220361}, NULL) = 0
gettimeofday({1202160309, 220415}, NULL) = 0
gettimeofday({1202160309, 220484}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160310, 220186}, NULL) = 0
gettimeofday({1202160310, 220240}, NULL) = 0
select(7, [4 5 6], [], [], {0, 175}) = 0 (Timeout)
gettimeofday({1202160310, 221179}, NULL) = 0
gettimeofday({1202160310, 221233}, NULL) = 0
gettimeofday({1202160310, 221303}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999930}) = 0 (Timeout)
gettimeofday({1202160311, 221184}, NULL) = 0
gettimeofday({1202160311, 221238}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160311, 221360}, NULL) = 0
gettimeofday({1202160311, 221413}, NULL) = 0
gettimeofday({1202160311, 221482}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160312, 221184}, NULL) = 0
gettimeofday({1202160312, 221239}, NULL) = 0
select(7, [4 5 6], [], [], {0, 174}) = 0 (Timeout)
gettimeofday({1202160312, 222180}, NULL) = 0
gettimeofday({1202160312, 222234}, NULL) = 0
gettimeofday({1202160312, 222303}, NULL) = 0
select(7, [4 5 6], [], [], {0, 168426}) = 0 (Timeout)
gettimeofday({1202160312, 391182}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb2941c) = 0
gettimeofday({1202160312, 391300}, NULL) = 0
gettimeofday({1202160312, 391354}, NULL) = 0
select(7, [4 5 6], [], [], {0, 830880}) = 0 (Timeout)
gettimeofday({1202160313, 222183}, NULL) = 0
gettimeofday({1202160313, 222237}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160313, 222357}, NULL) = 0
gettimeofday({1202160313, 222409}, NULL) = 0
gettimeofday({1202160313, 222478}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 1 (in [4], left {0, 789000})
gettimeofday({1202160313, 434057}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb270e0) = 0
gettimeofday({1202160313, 434339}, NULL) = 0
recvfrom(4, 0xbfb272e8, 8192, 64, 0xbfb2949c, 0xbfb294a8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160313, 434463}, NULL) = 0
select(7, [4 5 6], [], [], {0, 787946}) = 0 (Timeout)
gettimeofday({1202160314, 222186}, NULL) = 0
gettimeofday({1202160314, 222241}, NULL) = 0
select(7, [4 5 6], [], [], {0, 168}) = 0 (Timeout)
gettimeofday({1202160314, 223181}, NULL) = 0
gettimeofday({1202160314, 223235}, NULL) = 0
gettimeofday({1202160314, 223306}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999929}) = 0 (Timeout)
gettimeofday({1202160315, 223182}, NULL) = 0
gettimeofday({1202160315, 223235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160315, 223356}, NULL) = 0
gettimeofday({1202160315, 223409}, NULL) = 0
gettimeofday({1202160315, 223476}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160316, 223185}, NULL) = 0
gettimeofday({1202160316, 223240}, NULL) = 0
select(7, [4 5 6], [], [], {0, 169}) = 0 (Timeout)
gettimeofday({1202160316, 224180}, NULL) = 0
gettimeofday({1202160316, 224234}, NULL) = 0
gettimeofday({1202160316, 224304}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999930}) = 0 (Timeout)
gettimeofday({1202160317, 224184}, NULL) = 0
gettimeofday({1202160317, 224238}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160317, 224359}, NULL) = 0
gettimeofday({1202160317, 224412}, NULL) = 0
gettimeofday({1202160317, 224482}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999930}) = 0 (Timeout)
gettimeofday({1202160318, 224186}, NULL) = 0
gettimeofday({1202160318, 224241}, NULL) = 0
select(7, [4 5 6], [], [], {0, 171}) = 0 (Timeout)
gettimeofday({1202160318, 225179}, NULL) = 0
gettimeofday({1202160318, 225233}, NULL) = 0
gettimeofday({1202160318, 225303}, NULL) = 0
select(7, [4 5 6], [], [], {0, 209036}) = 0 (Timeout)
gettimeofday({1202160318, 435182}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb2941c) = 0
gettimeofday({1202160318, 435295}, NULL) = 0
gettimeofday({1202160318, 435349}, NULL) = 0
select(7, [4 5 6], [], [], {0, 789884}) = 0 (Timeout)
gettimeofday({1202160319, 225396}, NULL) = 0
gettimeofday({1202160319, 225660}, NULL) = 0
gettimeofday({1202160319, 225938}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999722}) = 1 (in [4], left {0, 774000})
gettimeofday({1202160319, 452419}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb270e0) = 0
gettimeofday({1202160319, 452956}, NULL) = 0
recvfrom(4, 0xbfb272e8, 8192, 64, 0xbfb2949c, 0xbfb294a8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160319, 455258}, NULL) = 0
select(7, [4 5 6], [], [], {0, 770402}) = 0 (Timeout)
gettimeofday({1202160320, 226189}, NULL) = 0
gettimeofday({1202160320, 226243}, NULL) = 0
gettimeofday({1202160320, 226312}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160321, 226188}, NULL) = 0
gettimeofday({1202160321, 226241}, NULL) = 0
select(7, [4 5 6], [], [], {0, 2}) = 0 (Timeout)
gettimeofday({1202160321, 227427}, NULL) = 0
gettimeofday({1202160321, 227480}, NULL) = 0
gettimeofday({1202160321, 227547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160322, 227429}, NULL) = 0
gettimeofday({1202160322, 227483}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160322, 227602}, NULL) = 0
gettimeofday({1202160322, 227655}, NULL) = 0
gettimeofday({1202160322, 227722}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160323, 227179}, NULL) = 0
gettimeofday({1202160323, 227231}, NULL) = 0
select(7, [4 5 6], [], [], {0, 424}) = 0 (Timeout)
gettimeofday({1202160323, 228427}, NULL) = 0
gettimeofday({1202160323, 228479}, NULL) = 0
gettimeofday({1202160323, 228550}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999929}) = 0 (Timeout)
gettimeofday({1202160324, 228179}, NULL) = 0
gettimeofday({1202160324, 228232}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247}) = 0 (Timeout)
gettimeofday({1202160324, 229427}, NULL) = 0
gettimeofday({1202160324, 229479}, NULL) = 0
gettimeofday({1202160324, 229550}, NULL) = 0
select(7, [4 5 6], [], [], {0, 223406}) = 0 (Timeout)
gettimeofday({1202160324, 453179}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb2941c) = 0
gettimeofday({1202160324, 453292}, NULL) = 0
gettimeofday({1202160324, 453345}, NULL) = 0
select(7, [4 5 6], [], [], {0, 776134}) = 0 (Timeout)
gettimeofday({1202160325, 230182}, NULL) = 0
gettimeofday({1202160325, 230236}, NULL) = 0
gettimeofday({1202160325, 230303}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 1 (in [4], left {0, 762000})
gettimeofday({1202160325, 468453}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb270e0) = 0
gettimeofday({1202160325, 468724}, NULL) = 0
recvfrom(4, 0xbfb272e8, 8192, 64, 0xbfb2949c, 0xbfb294a8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160325, 468843}, NULL) = 0
select(7, [4 5 6], [], [], {0, 761393}) = 0 (Timeout)
gettimeofday({1202160326, 230181}, NULL) = 0
gettimeofday({1202160326, 230234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 2}) = 0 (Timeout)
gettimeofday({1202160326, 231428}, NULL) = 0
gettimeofday({1202160326, 231481}, NULL) = 0
gettimeofday({1202160326, 231549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160327, 231181}, NULL) = 0
gettimeofday({1202160327, 231234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247}) = 0 (Timeout)
gettimeofday({1202160327, 232427}, NULL) = 0
gettimeofday({1202160327, 232480}, NULL) = 0
gettimeofday({1202160327, 232547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160328, 232180}, NULL) = 0
gettimeofday({1202160328, 232233}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247}) = 0 (Timeout)
gettimeofday({1202160328, 233439}, NULL) = 0
gettimeofday({1202160328, 233492}, NULL) = 0
gettimeofday({1202160328, 233562}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999930}) = 0 (Timeout)
gettimeofday({1202160329, 233189}, NULL) = 0
gettimeofday({1202160329, 233241}, NULL) = 0
select(7, [4 5 6], [], [], {0, 251}) = 0 (Timeout)
gettimeofday({1202160329, 234427}, NULL) = 0
gettimeofday({1202160329, 234480}, NULL) = 0
gettimeofday({1202160329, 234551}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999929}) = 0 (Timeout)
gettimeofday({1202160330, 234428}, NULL) = 0
gettimeofday({1202160330, 234481}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160330, 234601}, NULL) = 0
gettimeofday({1202160330, 234653}, NULL) = 0
gettimeofday({1202160330, 234723}, NULL) = 0
select(7, [4 5 6], [], [], {0, 234001}) = 0 (Timeout)
gettimeofday({1202160330, 469179}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb2941c) = 0
gettimeofday({1202160330, 469291}, NULL) = 0
gettimeofday({1202160330, 469344}, NULL) = 0
select(7, [4 5 6], [], [], {0, 765309}) = 0 (Timeout)
gettimeofday({1202160331, 235427}, NULL) = 0
gettimeofday({1202160331, 235481}, NULL) = 0
gettimeofday({1202160331, 235552}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999929}) = 1 (in [4], left {0, 751000})
gettimeofday({1202160331, 484455}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb270e0) = 0
gettimeofday({1202160331, 484726}, NULL) = 0
recvfrom(4, 0xbfb272e8, 8192, 64, 0xbfb2949c, 0xbfb294a8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160331, 484845}, NULL) = 0
select(7, [4 5 6], [], [], {0, 750636}) = 0 (Timeout)
gettimeofday({1202160332, 235191}, NULL) = 0
gettimeofday({1202160332, 235245}, NULL) = 0
select(7, [4 5 6], [], [], {0, 236}) = 0 (Timeout)
gettimeofday({1202160332, 236428}, NULL) = 0
gettimeofday({1202160332, 236482}, NULL) = 0
gettimeofday({1202160332, 236553}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999929}) = 0 (Timeout)
gettimeofday({1202160333, 236183}, NULL) = 0
gettimeofday({1202160333, 236237}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160333, 237428}, NULL) = 0
gettimeofday({1202160333, 237481}, NULL) = 0
gettimeofday({1202160333, 237548}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160334, 237183}, NULL) = 0
gettimeofday({1202160334, 237236}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160334, 238428}, NULL) = 0
gettimeofday({1202160334, 238481}, NULL) = 0
gettimeofday({1202160334, 238548}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160335, 238220}, NULL) = 0
gettimeofday({1202160335, 238305}, NULL) = 0
select(7, [4 5 6], [], [], {0, 176}) = 0 (Timeout)
gettimeofday({1202160335, 239445}, NULL) = 0
gettimeofday({1202160335, 239532}, NULL) = 0
gettimeofday({1202160335, 239635}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999897}) = 0 (Timeout)
gettimeofday({1202160336, 239208}, NULL) = 0
gettimeofday({1202160336, 239295}, NULL) = 0
select(7, [4 5 6], [], [], {0, 237}) = 0 (Timeout)
gettimeofday({1202160336, 240447}, NULL) = 0
gettimeofday({1202160336, 240534}, NULL) = 0
gettimeofday({1202160336, 240635}, NULL) = 0
select(7, [4 5 6], [], [], {0, 244091}) = 0 (Timeout)
gettimeofday({1202160336, 485208}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb2941c) = 0
gettimeofday({1202160336, 485401}, NULL) = 0
gettimeofday({1202160336, 485489}, NULL) = 0
select(7, [4 5 6], [], [], {0, 755045}) = 0 (Timeout)
gettimeofday({1202160337, 241451}, NULL) = 0
gettimeofday({1202160337, 241540}, NULL) = 0
gettimeofday({1202160337, 241645}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999895}) = 1 (in [4], left {0, 741000})
gettimeofday({1202160337, 500481}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb270e0) = 0
gettimeofday({1202160337, 500866}, NULL) = 0
recvfrom(4, 0xbfb272e8, 8192, 64, 0xbfb2949c, 0xbfb294a8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160337, 501059}, NULL) = 0
select(7, [4 5 6], [], [], {0, 740481}) = 0 (Timeout)
gettimeofday({1202160338, 242210}, NULL) = 0
gettimeofday({1202160338, 242297}, NULL) = 0
gettimeofday({1202160338, 242407}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999890}) = 0 (Timeout)
gettimeofday({1202160339, 242210}, NULL) = 0
gettimeofday({1202160339, 242297}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160339, 242493}, NULL) = 0
gettimeofday({1202160339, 242579}, NULL) = 0
gettimeofday({1202160339, 242680}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999899}) = 0 (Timeout)
gettimeofday({1202160340, 242452}, NULL) = 0
gettimeofday({1202160340, 242539}, NULL) = 0
select(7, [4 5 6], [], [], {0, 40}) = 0 (Timeout)
gettimeofday({1202160340, 243445}, NULL) = 0
gettimeofday({1202160340, 243532}, NULL) = 0
gettimeofday({1202160340, 243634}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999898}) = 0 (Timeout)
gettimeofday({1202160341, 243340}, NULL) = 0
gettimeofday({1202160341, 243611}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160341, 244153}, NULL) = 0
gettimeofday({1202160341, 244206}, NULL) = 0
gettimeofday({1202160341, 244578}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999628}) = 0 (Timeout)
gettimeofday({1202160342, 244182}, NULL) = 0
gettimeofday({1202160342, 244235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160342, 244354}, NULL) = 0
gettimeofday({1202160342, 244414}, NULL) = 0
gettimeofday({1202160342, 244483}, NULL) = 0
select(7, [4 5 6], [], [], {0, 256383}) = 0 (Timeout)
gettimeofday({1202160342, 501188}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb2941c) = 0
gettimeofday({1202160342, 501301}, NULL) = 0
gettimeofday({1202160342, 501353}, NULL) = 0
select(7, [4 5 6], [], [], {0, 743061}) = 0 (Timeout)
gettimeofday({1202160343, 245428}, NULL) = 0
gettimeofday({1202160343, 245481}, NULL) = 0
gettimeofday({1202160343, 245549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 1 (in [4], left {0, 729000})
gettimeofday({1202160343, 516452}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb270e0) = 0
gettimeofday({1202160343, 516721}, NULL) = 0
recvfrom(4, 0xbfb272e8, 8192, 64, 0xbfb2949c, 0xbfb294a8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160343, 516841}, NULL) = 0
select(7, [4 5 6], [], [], {0, 728640}) = 0 (Timeout)
gettimeofday({1202160344, 245181}, NULL) = 0
gettimeofday({1202160344, 245234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247}) = 0 (Timeout)
gettimeofday({1202160344, 246428}, NULL) = 0
gettimeofday({1202160344, 246481}, NULL) = 0
gettimeofday({1202160344, 246548}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160345, 246180}, NULL) = 0
gettimeofday({1202160345, 246233}, NULL) = 0
select(7, [4 5 6], [], [], {0, 248}) = 0 (Timeout)
gettimeofday({1202160345, 247427}, NULL) = 0
gettimeofday({1202160345, 247480}, NULL) = 0
gettimeofday({1202160345, 247546}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999934}) = 0 (Timeout)
gettimeofday({1202160346, 247181}, NULL) = 0
gettimeofday({1202160346, 247234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 246}) = 0 (Timeout)
gettimeofday({1202160346, 248428}, NULL) = 0
gettimeofday({1202160346, 248480}, NULL) = 0
gettimeofday({1202160346, 248547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160347, 248182}, NULL) = 0
gettimeofday({1202160347, 248235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160347, 249427}, NULL) = 0
gettimeofday({1202160347, 249480}, NULL) = 0
gettimeofday({1202160347, 249549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160348, 249181}, NULL) = 0
gettimeofday({1202160348, 249234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 246}) = 0 (Timeout)
gettimeofday({1202160348, 250438}, NULL) = 0
gettimeofday({1202160348, 250490}, NULL) = 0
gettimeofday({1202160348, 250557}, NULL) = 0
select(7, [4 5 6], [], [], {0, 266164}) = 0 (Timeout)
gettimeofday({1202160348, 517428}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb2941c) = 0
gettimeofday({1202160348, 517541}, NULL) = 0
gettimeofday({1202160348, 517593}, NULL) = 0
select(7, [4 5 6], [], [], {0, 732897}) = 0 (Timeout)
gettimeofday({1202160349, 250189}, NULL) = 0
gettimeofday({1202160349, 250242}, NULL) = 0
select(7, [4 5 6], [], [], {0, 248}) = 0 (Timeout)
gettimeofday({1202160349, 251427}, NULL) = 0
gettimeofday({1202160349, 251480}, NULL) = 0
gettimeofday({1202160349, 251546}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999934}) = 1 (in [4], left {0, 719000})
gettimeofday({1202160349, 532458}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\20\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb270e0) = 0
gettimeofday({1202160349, 532728}, NULL) = 0
recvfrom(4, 0xbfb272e8, 8192, 64, 0xbfb2949c, 0xbfb294a8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160349, 532846}, NULL) = 0
select(7, [4 5 6], [], [], {0, 718634}) = 0 (Timeout)
gettimeofday({1202160350, 251428}, NULL) = 0
gettimeofday({1202160350, 251481}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160350, 251600}, NULL) = 0
gettimeofday({1202160350, 251652}, NULL) = 0
gettimeofday({1202160350, 251720}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160351, 251428}, NULL) = 0
gettimeofday({1202160351, 251481}, NULL) = 0
select(7, [4 5 6], [], [], {0, 171}) = 0 (Timeout)
gettimeofday({1202160351, 252427}, NULL) = 0
gettimeofday({1202160351, 252479}, NULL) = 0
gettimeofday({1202160351, 252546}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160352, 252183}, NULL) = 0
gettimeofday({1202160352, 252236}, NULL) = 0
select(7, [4 5 6], [], [], {0, 243}) = 0 (Timeout)
gettimeofday({1202160352, 253427}, NULL) = 0
gettimeofday({1202160352, 253480}, NULL) = 0
gettimeofday({1202160352, 253549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160353, 253180}, NULL) = 0
gettimeofday({1202160353, 253233}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247}) = 0 (Timeout)
gettimeofday({1202160353, 254427}, NULL) = 0
gettimeofday({1202160353, 254479}, NULL) = 0
gettimeofday({1202160353, 254546}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}
[-- Attachment #5: wpa_supplicant-strace2 --]
[-- Type: text/plain, Size: 20747 bytes --]
execve("/sbin/wpa_supplicant", ["wpa_supplicant", "-Dwext", "-iath0", "-c", "/etc/wpa_supplicant/wpa_supplica"...], [/* 15 vars */]) = 0
uname({sys="Linux", node="home", ...}) = 0
brk(0) = 0x80e5000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f57000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=77517, ...}) = 0
mmap2(NULL, 77517, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f44000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/cmov/libssl.so.0.9.8", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\255"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=252768, ...}) = 0
mmap2(NULL, 255732, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f05000
mmap2(0xb7f40000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3a) = 0xb7f40000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/cmov/libcrypto.so.0.9.8", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300Y\3"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1270520, ...}) = 0
mmap2(NULL, 1282904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dcb000
mmap2(0xb7eed000, 81920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x122) = 0xb7eed000
mmap2(0xb7f01000, 13144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f01000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7dca000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\f\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9592, ...}) = 0
mmap2(NULL, 12404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dc6000
mmap2(0xb7dc8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7dc8000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libdbus-1.so.3", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220K\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=203740, ...}) = 0
mmap2(NULL, 203036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d94000
mmap2(0xb7dc5000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x31) = 0xb7dc5000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1241392, ...}) = 0
mmap2(NULL, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7c63000
mmap2(0xb7d8a000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0xb7d8a000
mmap2(0xb7d91000, 10396, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7d91000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/libz.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\26"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=78500, ...}) = 0
mmap2(NULL, 81456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7c4f000
mmap2(0xb7c62000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12) = 0xb7c62000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7c4e000
mprotect(0xb7d8a000, 20480, PROT_READ) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7c4e940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7f44000, 77517) = 0
brk(0) = 0x80e5000
brk(0x8106000) = 0x8106000
open("/dev/null", O_RDWR) = 3
close(3) = 0
open("/etc/wpa_supplicant/wpa_supplicant.conf", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=183, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f56000
read(3, "# WPA-PSK/TKIP\n\nctrl_interface=/"..., 4096) = 183
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7f56000, 4096) = 0
gettimeofday({1202160452, 570860}, NULL) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
socket(PF_NETLINK, SOCK_RAW, 0) = 4
bind(4, {sa_family=AF_NETLINK, pid=0, groups=00000001}, 12) = 0
ioctl(3, 0x8b36, 0xbfb6cc7c) = -1 EOPNOTSUPP (Operation not supported)
ioctl(3, SIOCSIWMODE, 0xbfb6cc80) = 0
ioctl(3, SIOCGIFFLAGS, {ifr_name="ath0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_PROMISC|IFF_MULTICAST}) = 0
ioctl(3, SIOCSIFFLAGS, 0xbfb6cc80) = 0
ioctl(3, SIOCGIWRANGE, 0xbfb6cce8) = 0
access("/proc/net", R_OK) = 0
access("/proc/net/unix", R_OK) = 0
socket(PF_FILE, SOCK_DGRAM, 0) = 5
ioctl(5, SIOCGIFINDEX, {ifr_name="ath0", ifr_index=4}) = 0
close(5) = 0
send(4, "-\0\0\0\23\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0"..., 45, 0) = 45
socket(PF_PACKET, SOCK_DGRAM, 36488) = 5
ioctl(5, SIOCGIFINDEX, {ifr_name="ath0", ifr_index=4}) = 0
bind(5, {sa_family=AF_PACKET, proto=0x888e, if4, pkttype=PACKET_HOST, addr(0)={0, }, 20) = 0
ioctl(5, SIOCGIFHWADDR, {ifr_name="ath0", ifr_hwaddr=00:17:9a:d1:ee:f4}) = 0
ioctl(3, 0x8b32, 0xbfb6ccbc) = 0
ioctl(3, 0x8b34, 0xbfb6cc5c) = 0
ioctl(3, 0x8b34, 0xbfb6cc5c) = 0
ioctl(3, 0x8b34, 0xbfb6cc5c) = 0
ioctl(3, 0x8b34, 0xbfb6cc5c) = 0
ioctl(3, 0x8b32, 0xbfb6ccbc) = -1 EOPNOTSUPP (Operation not supported)
dup(2) = 6
fcntl64(6, F_GETFL) = 0x1 (flags O_WRONLY)
close(6) = 0
write(2, "ioctl[SIOCSIWAUTH]: Operation no"..., 44ioctl[SIOCSIWAUTH]: Operation not supported
) = 44
write(2, "WEXT auth param 4 value 0x0 - ", 30WEXT auth param 4 value 0x0 - ) = 30
ioctl(3, 0x8b32, 0xbfb6ccbc) = 0
gettimeofday({1202160452, 576111}, NULL) = 0
mkdir("/var/run/wpa_supplicant", 0770) = 0
socket(PF_FILE, SOCK_DGRAM, 0) = 6
bind(6, {sa_family=AF_FILE, path="/var/run/wpa_supplicant/ath0"}, 110) = 0
chmod("/var/run/wpa_supplicant/ath0", 0770) = 0
rt_sigaction(SIGINT, {0x80503c0, [INT], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {0x80503c0, [TERM], SA_RESTART}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGHUP, {0x80503c0, [HUP], SA_RESTART}, {SIG_DFL}, 8) = 0
gettimeofday({1202160452, 576925}, NULL) = 0
select(7, [4 5 6], [], [], {0, 99186}) = 1 (in [4], left {0, 99186})
gettimeofday({1202160452, 577072}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\21\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
recvfrom(4, 0xbfb6ab28, 8192, 64, 0xbfb6ccdc, 0xbfb6cce8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160452, 577346}, NULL) = 0
select(7, [4 5 6], [], [], {0, 98765}) = 0 (Timeout)
gettimeofday({1202160452, 676429}, NULL) = 0
ioctl(3, SIOCGIWSCAN, 0xbfb6caf0) = 0
gettimeofday({1202160452, 676589}, NULL) = 0
gettimeofday({1202160452, 676642}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160452, 676762}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb6cc5c) = 0
gettimeofday({1202160452, 676873}, NULL) = 0
gettimeofday({1202160452, 676926}, NULL) = 0
select(7, [4 5 6], [], [], {0, 893934}) = 0 (Timeout)
gettimeofday({1202160453, 570187}, NULL) = 0
gettimeofday({1202160453, 570241}, NULL) = 0
select(7, [4 5 6], [], [], {0, 619}) = 0 (Timeout)
gettimeofday({1202160453, 571428}, NULL) = 0
gettimeofday({1202160453, 571482}, NULL) = 0
gettimeofday({1202160453, 571552}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999930}) = 1 (in [4], left {0, 880000})
gettimeofday({1202160453, 691461}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\21\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb6a920) = 0
gettimeofday({1202160453, 691739}, NULL) = 0
recvfrom(4, 0xbfb6ab28, 8192, 64, 0xbfb6ccdc, 0xbfb6cce8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160453, 691859}, NULL) = 0
select(7, [4 5 6], [], [], {0, 879623}) = 0 (Timeout)
gettimeofday({1202160454, 571185}, NULL) = 0
gettimeofday({1202160454, 571238}, NULL) = 0
select(7, [4 5 6], [], [], {0, 244}) = 0 (Timeout)
gettimeofday({1202160454, 572429}, NULL) = 0
gettimeofday({1202160454, 572482}, NULL) = 0
gettimeofday({1202160454, 572551}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160455, 572183}, NULL) = 0
gettimeofday({1202160455, 572236}, NULL) = 0
select(7, [4 5 6], [], [], {0, 246}) = 0 (Timeout)
gettimeofday({1202160455, 573428}, NULL) = 0
gettimeofday({1202160455, 573480}, NULL) = 0
gettimeofday({1202160455, 573547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160456, 573182}, NULL) = 0
gettimeofday({1202160456, 573235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160456, 574428}, NULL) = 0
gettimeofday({1202160456, 574480}, NULL) = 0
gettimeofday({1202160456, 574547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160457, 574182}, NULL) = 0
gettimeofday({1202160457, 574235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160457, 575439}, NULL) = 0
gettimeofday({1202160457, 575491}, NULL) = 0
gettimeofday({1202160457, 575559}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160458, 575190}, NULL) = 0
gettimeofday({1202160458, 575242}, NULL) = 0
select(7, [4 5 6], [], [], {0, 249}) = 0 (Timeout)
gettimeofday({1202160458, 576428}, NULL) = 0
gettimeofday({1202160458, 576480}, NULL) = 0
gettimeofday({1202160458, 576547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 115192}) = 0 (Timeout)
gettimeofday({1202160458, 692179}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb6cc5c) = 0
gettimeofday({1202160458, 692292}, NULL) = 0
gettimeofday({1202160458, 692344}, NULL) = 0
select(7, [4 5 6], [], [], {0, 884136}) = 0 (Timeout)
gettimeofday({1202160459, 577182}, NULL) = 0
gettimeofday({1202160459, 577235}, NULL) = 0
gettimeofday({1202160459, 577303}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 1 (in [4], left {0, 870000})
gettimeofday({1202160459, 707452}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\21\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb6a920) = 0
gettimeofday({1202160459, 707726}, NULL) = 0
recvfrom(4, 0xbfb6ab28, 8192, 64, 0xbfb6ccdc, 0xbfb6cce8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160459, 707844}, NULL) = 0
select(7, [4 5 6], [], [], {0, 869391}) = 0 (Timeout)
gettimeofday({1202160460, 577196}, NULL) = 0
gettimeofday({1202160460, 577249}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160460, 577376}, NULL) = 0
gettimeofday({1202160460, 577429}, NULL) = 0
gettimeofday({1202160460, 577498}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160461, 577185}, NULL) = 0
gettimeofday({1202160461, 577238}, NULL) = 0
select(7, [4 5 6], [], [], {0, 191}) = 0 (Timeout)
gettimeofday({1202160461, 578428}, NULL) = 0
gettimeofday({1202160461, 578481}, NULL) = 0
gettimeofday({1202160461, 578548}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160462, 578181}, NULL) = 0
gettimeofday({1202160462, 578235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 246}) = 0 (Timeout)
gettimeofday({1202160462, 579428}, NULL) = 0
gettimeofday({1202160462, 579481}, NULL) = 0
gettimeofday({1202160462, 579549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160463, 579187}, NULL) = 0
gettimeofday({1202160463, 579240}, NULL) = 0
select(7, [4 5 6], [], [], {0, 241}) = 0 (Timeout)
gettimeofday({1202160463, 580428}, NULL) = 0
gettimeofday({1202160463, 580481}, NULL) = 0
gettimeofday({1202160463, 580551}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999930}) = 0 (Timeout)
gettimeofday({1202160464, 580193}, NULL) = 0
gettimeofday({1202160464, 580246}, NULL) = 0
select(7, [4 5 6], [], [], {0, 235}) = 0 (Timeout)
gettimeofday({1202160464, 581428}, NULL) = 0
gettimeofday({1202160464, 581481}, NULL) = 0
gettimeofday({1202160464, 581552}, NULL) = 0
select(7, [4 5 6], [], [], {0, 126174}) = 0 (Timeout)
gettimeofday({1202160464, 708187}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb6cc5c) = 0
gettimeofday({1202160464, 708299}, NULL) = 0
gettimeofday({1202160464, 708352}, NULL) = 0
select(7, [4 5 6], [], [], {0, 873129}) = 0 (Timeout)
gettimeofday({1202160465, 582430}, NULL) = 0
gettimeofday({1202160465, 582483}, NULL) = 0
gettimeofday({1202160465, 582552}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 1 (in [4], left {0, 837000})
gettimeofday({1202160465, 745455}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\21\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb6a920) = 0
gettimeofday({1202160465, 745728}, NULL) = 0
recvfrom(4, 0xbfb6ab28, 8192, 64, 0xbfb6ccdc, 0xbfb6cce8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160465, 745846}, NULL) = 0
select(7, [4 5 6], [], [], {0, 836637}) = 0 (Timeout)
gettimeofday({1202160466, 582182}, NULL) = 0
gettimeofday({1202160466, 582235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 248}) = 0 (Timeout)
gettimeofday({1202160466, 583428}, NULL) = 0
gettimeofday({1202160466, 583481}, NULL) = 0
gettimeofday({1202160466, 583549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160467, 583181}, NULL) = 0
gettimeofday({1202160467, 583234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 247}) = 0 (Timeout)
gettimeofday({1202160467, 584428}, NULL) = 0
gettimeofday({1202160467, 584480}, NULL) = 0
gettimeofday({1202160467, 584547}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160468, 584182}, NULL) = 0
gettimeofday({1202160468, 584235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160468, 585439}, NULL) = 0
gettimeofday({1202160468, 585492}, NULL) = 0
gettimeofday({1202160468, 585559}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160469, 585430}, NULL) = 0
gettimeofday({1202160469, 585484}, NULL) = 0
select(7, [4 5 6], [], [], {0, 8}) = 0 (Timeout)
gettimeofday({1202160469, 586428}, NULL) = 0
gettimeofday({1202160469, 586480}, NULL) = 0
gettimeofday({1202160469, 586548}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160470, 586181}, NULL) = 0
gettimeofday({1202160470, 586235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160470, 587428}, NULL) = 0
gettimeofday({1202160470, 587481}, NULL) = 0
gettimeofday({1202160470, 587549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 158179}) = 0 (Timeout)
gettimeofday({1202160470, 746180}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb6cc5c) = 0
gettimeofday({1202160470, 746293}, NULL) = 0
gettimeofday({1202160470, 746345}, NULL) = 0
select(7, [4 5 6], [], [], {0, 841136}) = 0 (Timeout)
gettimeofday({1202160471, 588430}, NULL) = 0
gettimeofday({1202160471, 588484}, NULL) = 0
gettimeofday({1202160471, 588553}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 1 (in [4], left {0, 827000})
gettimeofday({1202160471, 761463}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\21\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb6a920) = 0
gettimeofday({1202160471, 761733}, NULL) = 0
recvfrom(4, 0xbfb6ab28, 8192, 64, 0xbfb6ccdc, 0xbfb6cce8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160471, 761851}, NULL) = 0
select(7, [4 5 6], [], [], {0, 826633}) = 0 (Timeout)
gettimeofday({1202160472, 588182}, NULL) = 0
gettimeofday({1202160472, 588236}, NULL) = 0
select(7, [4 5 6], [], [], {0, 248}) = 0 (Timeout)
gettimeofday({1202160472, 589428}, NULL) = 0
gettimeofday({1202160472, 589481}, NULL) = 0
gettimeofday({1202160472, 589550}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999931}) = 0 (Timeout)
gettimeofday({1202160473, 589182}, NULL) = 0
gettimeofday({1202160473, 589235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 246}) = 0 (Timeout)
gettimeofday({1202160473, 590428}, NULL) = 0
gettimeofday({1202160473, 590481}, NULL) = 0
gettimeofday({1202160473, 590548}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160474, 590183}, NULL) = 0
gettimeofday({1202160474, 590236}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160474, 591429}, NULL) = 0
gettimeofday({1202160474, 591482}, NULL) = 0
gettimeofday({1202160474, 591549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999933}) = 0 (Timeout)
gettimeofday({1202160475, 591196}, NULL) = 0
gettimeofday({1202160475, 591249}, NULL) = 0
select(7, [4 5 6], [], [], {0, 233}) = 0 (Timeout)
gettimeofday({1202160475, 592428}, NULL) = 0
gettimeofday({1202160475, 592481}, NULL) = 0
gettimeofday({1202160475, 592549}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160476, 592194}, NULL) = 0
gettimeofday({1202160476, 592247}, NULL) = 0
select(7, [4 5 6], [], [], {0, 234}) = 0 (Timeout)
gettimeofday({1202160476, 593428}, NULL) = 0
gettimeofday({1202160476, 593481}, NULL) = 0
gettimeofday({1202160476, 593551}, NULL) = 0
select(7, [4 5 6], [], [], {0, 168182}) = 0 (Timeout)
gettimeofday({1202160476, 762182}, NULL) = 0
ioctl(3, SIOCSIWSCAN, 0xbfb6cc5c) = 0
gettimeofday({1202160476, 762294}, NULL) = 0
gettimeofday({1202160476, 762347}, NULL) = 0
select(7, [4 5 6], [], [], {0, 831134}) = 0 (Timeout)
gettimeofday({1202160477, 594430}, NULL) = 0
gettimeofday({1202160477, 594483}, NULL) = 0
gettimeofday({1202160477, 594551}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 1 (in [4], left {0, 817000})
gettimeofday({1202160477, 777448}, NULL) = 0
recvfrom(4, ",\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\4\0\0\0\3\21\0"..., 8192, MSG_DONTWAIT, {sa_family=AF_NETLINK, pid=0, groups=00000001}, [12]) = 44
ioctl(3, SIOCGIWSCAN, 0xbfb6a920) = 0
gettimeofday({1202160477, 777720}, NULL) = 0
recvfrom(4, 0xbfb6ab28, 8192, 64, 0xbfb6ccdc, 0xbfb6cce8) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1202160477, 777839}, NULL) = 0
select(7, [4 5 6], [], [], {0, 816644}) = 0 (Timeout)
gettimeofday({1202160478, 594430}, NULL) = 0
gettimeofday({1202160478, 594483}, NULL) = 0
select(7, [4 5 6], [], [], {0, 0}) = 0 (Timeout)
gettimeofday({1202160478, 594603}, NULL) = 0
gettimeofday({1202160478, 594655}, NULL) = 0
gettimeofday({1202160478, 594723}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160479, 594430}, NULL) = 0
gettimeofday({1202160479, 594482}, NULL) = 0
select(7, [4 5 6], [], [], {0, 173}) = 0 (Timeout)
gettimeofday({1202160479, 595434}, NULL) = 0
gettimeofday({1202160479, 595486}, NULL) = 0
gettimeofday({1202160479, 595554}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160480, 595180}, NULL) = 0
gettimeofday({1202160480, 595234}, NULL) = 0
select(7, [4 5 6], [], [], {0, 252}) = 0 (Timeout)
gettimeofday({1202160480, 596428}, NULL) = 0
gettimeofday({1202160480, 596480}, NULL) = 0
gettimeofday({1202160480, 596548}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}) = 0 (Timeout)
gettimeofday({1202160481, 596182}, NULL) = 0
gettimeofday({1202160481, 596235}, NULL) = 0
select(7, [4 5 6], [], [], {0, 245}) = 0 (Timeout)
gettimeofday({1202160481, 597429}, NULL) = 0
gettimeofday({1202160481, 597482}, NULL) = 0
gettimeofday({1202160481, 597550}, NULL) = 0
select(7, [4 5 6], [], [], {0, 999932}
^ permalink raw reply
* Re: [Wireless, ath5k] 2.6.24-git13 9135f1901ee6449dfe338adf6e40e9c2025b8150
From: Oliver Pinter @ 2008-02-04 21:40 UTC (permalink / raw)
To: Jiri Slaby
Cc: netdev, ath5k-devel-xDcbHBWguxEUs3QNXV6qNA, John W. Linville,
Linux Kernel, Bruno Randolf, Andrew Morton
In-Reply-To: <6101e8c40802041334o20b2b391la5b0a5f557ee67c5-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On 2/4/08, Oliver Pinter <oliver.pntr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> On 2/4/08, Jiri Slaby <jirislaby-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> > On 02/04/2008 03:00 PM, Oliver Pinter (Pintér Olivér) wrote:
> > > git top: 9135f1901ee6449dfe338adf6e40e9c2025b8150
> > >
> > > [ 399.582185] wpa_supplicant[4383]: segfault at 30 ip 080697ca sp
> > > bf87a690 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 406.277199] wpa_supplicant[4384]: segfault at 30 ip 080697ca sp
> > > bfc13a30 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 407.586375] wpa_supplicant[4385]: segfault at 30 ip 080697ca sp
> > > bf9ed000 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 411.671037] wpa_supplicant[4386]: segfault at 30 ip 080697ca sp
> > > bf8f3710 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 412.569843] wpa_supplicant[4387]: segfault at 30 ip 080697ca sp
> > > bfc19a30 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 413.118874] wpa_supplicant[4388]: segfault at 30 ip 080697ca sp
> > > bfc9cab0 error 4 in wpa_supplicant[8048000+4c000]
> >
> > Seems like wpa_supplicant is broken. Is this a regression?
>
> yes, but with madwifi is all ok
> >
> > > home:~# wpa_supplicant -Dwext -iath0 -c
> > /etc/wpa_supplicant/wpa_supplicant.conf
> >
> > ath0? udev renamed it?
>
> yes
> >
> > > ioctl[SIOCSIWAUTH]: Operation not supported
> > > WEXT auth param 4 value 0x0 - bind(PF_UNIX): Address already in use
> >
> > 4 - 0x0 is TKIP, nothing we should worry about.
> >
> > > ctrl_iface exists and seems to be in use - cannot override it
> > > Delete '/var/run/wpa_supplicant/ath0' manually if it is not used
> anymore
> > > Failed to initialize control interface '/var/run/wpa_supplicant'.
> > > You may have another wpa_supplicant process already running or the file
> > was
> > > left by an unclean termination of wpa_supplicant in which case you will
> > need
> > > to manually remove this file before starting wpa_supplicant again.
> >
> > Have you?
>
> yes
> >
> > I guess ltrace would help here. And maybe strace...
> >
>
> strace attached and wpa_supplicant more verbose output
> --
> Thanks,
> Oliver
>
02:01.0 Ethernet controller: Atheros Communications, Inc. AR5212
802.11abg NIC (rev 01)
Subsystem: D-Link System Inc D-Link AirPlus DWL-G520 Wireless
PCI Adapter(rev.B)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 168 (2500ns min, 7000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at e4000000 (32-bit, non-prefetchable) [size=64K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=2 PME-
02:01.0 Ethernet controller: Atheros Communications, Inc. AR5212
802.11abg NIC (rev 01)
00: 8c 16 13 00 06 00 90 02 01 00 00 02 08 a8 00 00
10: 00 00 00 e4 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 01 50 00 00 86 11 13 3a
30: 00 00 00 00 44 00 00 00 00 00 00 00 0b 01 0a 1c
40: 00 00 00 00 01 00 c2 01 00 40 00 c6 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
--
Thanks,
Oliver
^ permalink raw reply
* Re: [Wireless, ath5k] 2.6.24-git13 9135f1901ee6449dfe338adf6e40e9c2025b8150
From: Dan Williams @ 2008-02-04 21:52 UTC (permalink / raw)
To: Oliver Pinter
Cc: Jiri Slaby, netdev, ath5k-devel-xDcbHBWguxEUs3QNXV6qNA,
John W. Linville, Linux Kernel, Bruno Randolf, Andrew Morton,
Linus Torvalds
In-Reply-To: <6101e8c40802041334o20b2b391la5b0a5f557ee67c5-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Mon, 2008-02-04 at 22:34 +0100, Oliver Pinter wrote:
> On 2/4/08, Jiri Slaby <jirislaby@gmail.com> wrote:
> > On 02/04/2008 03:00 PM, Oliver Pinter (Pintér Olivér) wrote:
> > > git top: 9135f1901ee6449dfe338adf6e40e9c2025b8150
> > >
> > > [ 399.582185] wpa_supplicant[4383]: segfault at 30 ip 080697ca sp
> > > bf87a690 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 406.277199] wpa_supplicant[4384]: segfault at 30 ip 080697ca sp
> > > bfc13a30 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 407.586375] wpa_supplicant[4385]: segfault at 30 ip 080697ca sp
> > > bf9ed000 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 411.671037] wpa_supplicant[4386]: segfault at 30 ip 080697ca sp
> > > bf8f3710 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 412.569843] wpa_supplicant[4387]: segfault at 30 ip 080697ca sp
> > > bfc19a30 error 4 in wpa_supplicant[8048000+4c000]
> > > [ 413.118874] wpa_supplicant[4388]: segfault at 30 ip 080697ca sp
> > > bfc9cab0 error 4 in wpa_supplicant[8048000+4c000]
> >
> > Seems like wpa_supplicant is broken. Is this a regression?
>
> yes, but with madwifi is all ok
> >
> > > home:~# wpa_supplicant -Dwext -iath0 -c
> > /etc/wpa_supplicant/wpa_supplicant.conf
> >
> > ath0? udev renamed it?
>
> yes
> >
> > > ioctl[SIOCSIWAUTH]: Operation not supported
> > > WEXT auth param 4 value 0x0 - bind(PF_UNIX): Address already in use
> >
> > 4 - 0x0 is TKIP, nothing we should worry about.
> >
> > > ctrl_iface exists and seems to be in use - cannot override it
> > > Delete '/var/run/wpa_supplicant/ath0' manually if it is not used anymore
> > > Failed to initialize control interface '/var/run/wpa_supplicant'.
> > > You may have another wpa_supplicant process already running or the file
> > was
> > > left by an unclean termination of wpa_supplicant in which case you will
> > need
> > > to manually remove this file before starting wpa_supplicant again.
> >
> > Have you?
>
> yes
> >
> > I guess ltrace would help here. And maybe strace...
> >
>
> strace attached and wpa_supplicant more verbose output
It doesn't look like the driver is returning _any_ scan results. What
does '/sbin/iwlist wlan0 scan' show from the command line. If the
driver isn't returning scan results to the supplicant, there's not much
the supplicant can do. You may need to ensure the interface is up
before scanning.
Note that the specific behavior of the process requesting scan results
can sometimes interact badly with the driver. The driver most likely
needs to cope with this (by caching the BSS list internally for example)
and handle whatever behavior userspace programs throw at it.
Dan
_______________________________________________
ath5k-devel mailing list
ath5k-devel@lists.ath5k.org
https://lists.ath5k.org/mailman/listinfo/ath5k-devel
^ permalink raw reply
* Re: [PATCH] xircom_cb should return NETDEV_TX_BUSY when there are no descriptors available
From: Jeff Garzik @ 2008-02-04 22:31 UTC (permalink / raw)
To: Erik Mouw; +Cc: netdev, Waskiewicz Jr, Peter P, jamal
In-Reply-To: <20080204212037.GB11417@gateway.home>
Erik Mouw wrote:
> On Mon, Feb 04, 2008 at 06:56:54PM +0100, Erik Mouw wrote:
>> Changes in other networking paths uncovered a bug in the xircom_cb
>> driver which made the kernel spew lots of the following error messages:
>>
>> BUG eth1 code -5 qlen 0
>>
>> It turned out that the driver returned -EIO when there was no
>> descriptor available for sending packets. It should return
>> NETDEV_TX_BUSY instead. This was discussed on the netdev list before,
>> see http://thread.gmane.org/gmane.linux.network/84603 .
>>
>> Signed-off-by: Erik Mouw <mouw@nl.linux.org>
>
> Forgot to tell: the patch is against 2.6.24 but should apply cleanly to
> the latest git kernel. The xircom_cb driver appears to be orphaned so
> I've send the patch to you.
Yep, that's the right thing to do...
Jeff
^ permalink raw reply
* Re: [Wireless, ath5k] 2.6.24-git13 9135f1901ee6449dfe338adf6e40e9c2025b8150
From: Jiri Slaby @ 2008-02-04 22:36 UTC (permalink / raw)
To: Dan Williams
Cc: Oliver Pinter, John W. Linville, Bruno Randolf, netdev,
Andrew Morton, Linus Torvalds, Linux Kernel, ath5k-devel
In-Reply-To: <1202161934.24527.5.camel@localhost.localdomain>
On 02/04/2008 10:52 PM, Dan Williams wrote:
> On Mon, 2008-02-04 at 22:34 +0100, Oliver Pinter wrote:
>> On 2/4/08, Jiri Slaby <jirislaby@gmail.com> wrote:
>>> On 02/04/2008 03:00 PM, Oliver Pinter (Pintér Olivér) wrote:
>>>> ioctl[SIOCSIWAUTH]: Operation not supported
>>>> WEXT auth param 4 value 0x0 - bind(PF_UNIX): Address already in use
>>> 4 - 0x0 is TKIP, nothing we should worry about.
>>>
>>>> ctrl_iface exists and seems to be in use - cannot override it
>>>> Delete '/var/run/wpa_supplicant/ath0' manually if it is not used anymore
>>>> Failed to initialize control interface '/var/run/wpa_supplicant'.
>>>> You may have another wpa_supplicant process already running or the file
>>> was
>>>> left by an unclean termination of wpa_supplicant in which case you will
>>> need
>>>> to manually remove this file before starting wpa_supplicant again.
>>> Have you?
>> yes
Ok, on one log it can't be bound and connected to, on the others it can be
bound. I think you have 2 wpa/NM/whatever processes there which try to assign.
> Note that the specific behavior of the process requesting scan results
> can sometimes interact badly with the driver. The driver most likely
> needs to cope with this (by caching the BSS list internally for example)
> and handle whatever behavior userspace programs throw at it.
The driver doesn't cope with scanning at all. It doesn't support passive scans.
It's a mac layer who scans (sends probe request for each channel and listens for
probe response for a while) here.
The scan results as Dan mentioned will be appreciated.
^ permalink raw reply
* Re: [Bugme-new] [Bug 9888] New: tun device without protocol info header fails under IPv6
From: Andrew Morton @ 2008-02-04 22:53 UTC (permalink / raw)
To: steve.zabele; +Cc: bugme-daemon, netdev, maxk
In-Reply-To: <bug-9888-10286@http.bugzilla.kernel.org/>
On Mon, 4 Feb 2008 13:46:13 -0800 (PST)
bugme-daemon@bugzilla.kernel.org wrote:
> http://bugzilla.kernel.org/show_bug.cgi?id=9888
>
> Summary: tun device without protocol info header fails under IPv6
> Product: Networking
> Version: 2.5
> KernelVersion: >=2.6.23
> Platform: All
> OS/Version: Linux
> Tree: Mainline
> Status: NEW
> Severity: low
> Priority: P1
> Component: IPV6
> AssignedTo: yoshfuji@linux-ipv6.org
> ReportedBy: steve.zabele@baesystems.com
>
>
> Latest working kernel version: None known -- appears to be a historic bug
> Earliest failing kernel version: All
> Distribution:
> Hardware Environment:
> Software Environment:
> Problem Description:
>
> Steps to reproduce:
>
> Open a tun device as type TUN, set the TUN_NO_PI flag, and try sending an IPv6
> packet. The packet appears at the interface under tcpdumps, but propagates no
> further. This is because the default protocol info used for tun devices where
> the TUN_NO_PI flag is set assumes IPv4 as can be seen by the initialization at
> the top of the tun_get_user function in drivers/net/tun.c file given by
>
> struct tun_pi pi = { 0, __constant_htons(ETH_P_IP) };
>
> This can easily be fixed by adding a quick check at the top of tun_get_user.
> Basically the code that used to read
>
> if (!(tun->flags & TUN_NO_PI)) {
> if ((len -= sizeof(pi)) > count)
> return -EINVAL;
>
> if(memcpy_fromiovec((void *)&pi, iv, sizeof(pi)))
> return -EFAULT;
> }
>
> when changed to read
>
> if (!(tun->flags & TUN_NO_PI)) {
> if ((len -= sizeof(pi)) > count)
> return -EINVAL;
>
> if(memcpy_fromiovec((void *)&pi, iv, sizeof(pi)))
> return -EFAULT;
> }
> else {
> /* Fixup default pi if IPv6 rather than IPv4 */
> if (((tun->flags & TUN_TYPE_MASK) == TUN_TUN_DEV) &&
> (*(char *)(iv->iov_base) == 0x60)) {
> pi.proto = __constant_htons(ETH_P_IPV6);
> }
> }
>
> fixes the problem.
>
> How do we get this in as part of the maintained codebase??
>
Please email a tested patch prepared as described in
Documentation/SubmittingPatches
Documentation/SubmitChecklist
http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt
to
Maxim Krasnyansky <maxk@qualcomm.com>
"David S. Miller" <davem@davemloft.net>
Andrew Morton <akpm@linux-foundation.org>
netdev@vger.kernel.org
thanks.
^ permalink raw reply
* [PATCH] Add IPv6 support to TCP SYN cookies
From: Glenn Griffin @ 2008-02-04 23:01 UTC (permalink / raw)
To: netdev, linux-kernel; +Cc: Andi Kleen
Here is a reworked implementation that restricts the code to the ipv6 module as
Andi suggested. Uses the same CONFIG and sysctl variables as the ipv4
implementation.
Signed-off-by: Glenn Griffin <ggriffin.kernel@gmail.com>
---
include/net/tcp.h | 6 +
net/ipv6/Makefile | 1 +
net/ipv6/syncookies.c | 273 +++++++++++++++++++++++++++++++++++++++++++++++++
net/ipv6/tcp_ipv6.c | 77 ++++++++++----
4 files changed, 335 insertions(+), 22 deletions(-)
create mode 100644 net/ipv6/syncookies.c
diff --git a/include/net/tcp.h b/include/net/tcp.h
index cb5b033..d7f620c 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -436,6 +436,11 @@ extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb,
__u16 *mss);
+/* From net/ipv6/syncookies.c */
+extern struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb);
+extern __u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb,
+ __u16 *mss);
+
/* tcp_output.c */
extern void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss,
@@ -1337,6 +1342,7 @@ extern int tcp_proc_register(struct tcp_seq_afinfo *afinfo);
extern void tcp_proc_unregister(struct tcp_seq_afinfo *afinfo);
extern struct request_sock_ops tcp_request_sock_ops;
+extern struct request_sock_ops tcp6_request_sock_ops;
extern int tcp_v4_destroy_sock(struct sock *sk);
diff --git a/net/ipv6/Makefile b/net/ipv6/Makefile
index 87c23a7..d1a1056 100644
--- a/net/ipv6/Makefile
+++ b/net/ipv6/Makefile
@@ -15,6 +15,7 @@ ipv6-$(CONFIG_XFRM) += xfrm6_policy.o xfrm6_state.o xfrm6_input.o \
ipv6-$(CONFIG_NETFILTER) += netfilter.o
ipv6-$(CONFIG_IPV6_MULTIPLE_TABLES) += fib6_rules.o
ipv6-$(CONFIG_PROC_FS) += proc.o
+ipv6-$(CONFIG_SYN_COOKIES) += syncookies.o
ipv6-objs += $(ipv6-y)
diff --git a/net/ipv6/syncookies.c b/net/ipv6/syncookies.c
new file mode 100644
index 0000000..521c9da
--- /dev/null
+++ b/net/ipv6/syncookies.c
@@ -0,0 +1,273 @@
+/*
+ * IPv6 Syncookies implementation for the Linux kernel
+ *
+ * Authors:
+ * Glenn Griffin <ggriffin.kernel@gmail.com>
+ *
+ * Based on IPv4 implementation by Andi Kleen
+ * linux/net/ipv4/syncookies.c
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ *
+ */
+
+#include <linux/tcp.h>
+#include <linux/random.h>
+#include <linux/cryptohash.h>
+#include <linux/kernel.h>
+#include <net/ipv6.h>
+#include <net/tcp.h>
+
+extern int sysctl_tcp_syncookies;
+
+static __u32 syncookie_secret[2][16-10+SHA_DIGEST_WORDS];
+
+static __init int init_syncookies(void)
+{
+ get_random_bytes(syncookie_secret, sizeof(syncookie_secret));
+ return 0;
+}
+module_init(init_syncookies);
+
+#define COOKIEBITS 24 /* Upper bits store count */
+#define COOKIEMASK (((__u32)1 << COOKIEBITS) - 1)
+
+/*
+ * This table has to be sorted and terminated with (__u16)-1.
+ * XXX generate a better table.
+ * Unresolved Issues: HIPPI with a 64k MSS is not well supported.
+ *
+ * Taken directly from ipv4 implementation.
+ * Should this list be modified for ipv6 use or is it close enough?
+ * rfc 2460 8.3 suggests mss values 20 bytes less than ipv4 counterpart
+ */
+static __u16 const msstab[] = {
+ 64 - 1,
+ 256 - 1,
+ 512 - 1,
+ 536 - 1,
+ 1024 - 1,
+ 1440 - 1,
+ 1460 - 1,
+ 4312 - 1,
+ (__u16)-1
+};
+/* The number doesn't include the -1 terminator */
+#define NUM_MSS (ARRAY_SIZE(msstab) - 1)
+
+/*
+ * This (misnamed) value is the age of syncookie which is permitted.
+ * Its ideal value should be dependent on TCP_TIMEOUT_INIT and
+ * sysctl_tcp_retries1. It's a rather complicated formula (exponential
+ * backoff) to compute at runtime so it's currently hardcoded here.
+ */
+#define COUNTER_TRIES 4
+
+static inline struct sock *get_cookie_sock(struct sock *sk, struct sk_buff *skb,
+ struct request_sock *req,
+ struct dst_entry *dst)
+{
+ struct inet_connection_sock *icsk = inet_csk(sk);
+ struct sock *child;
+
+ child = icsk->icsk_af_ops->syn_recv_sock(sk, skb, req, dst);
+ if (child)
+ inet_csk_reqsk_queue_add(sk, req, child);
+ else
+ reqsk_free(req);
+
+ return child;
+}
+
+static u32 cookie_hash(struct in6_addr *saddr, struct in6_addr *daddr,
+ __be16 sport, __be16 dport, u32 count, int c)
+{
+ __u32 tmp[16 + 5 + SHA_WORKSPACE_WORDS];
+
+ /*
+ * we have 320 bits of information to hash, copy in the remaining
+ * 192 bits required for sha_transform, from the syncookie_secret
+ * and overwrite the digest with the secret
+ */
+ memcpy(tmp + 10, syncookie_secret[c], sizeof(syncookie_secret[c]));
+ memcpy(tmp, saddr, 16);
+ memcpy(tmp + 4, daddr, 16);
+ tmp[8] = ((__force u32)sport << 16) + (__force u32)dport;
+ tmp[9] = count;
+ sha_transform(tmp + 16, (__u8 *)tmp, tmp + 16 + 5);
+
+ return tmp[17];
+}
+
+static __u32 secure_tcp_syn_cookie(struct in6_addr *saddr, struct in6_addr *daddr,
+ __be16 sport, __be16 dport, __u32 sseq,
+ __u32 count, __u32 data)
+{
+ return (cookie_hash(saddr, daddr, sport, dport, 0, 0) +
+ sseq + (count << COOKIEBITS) +
+ ((cookie_hash(saddr, daddr, sport, dport, count, 1) + data)
+ & COOKIEMASK));
+}
+
+static __u32 check_tcp_syn_cookie(__u32 cookie, struct in6_addr *saddr,
+ struct in6_addr *daddr, __be16 sport,
+ __be16 dport, __u32 sseq, __u32 count,
+ __u32 maxdiff)
+{
+ __u32 diff;
+
+ cookie -= cookie_hash(saddr, daddr, sport, dport, 0, 0) + sseq;
+
+ diff = (count - (cookie >> COOKIEBITS)) & ((__u32) -1 >> COOKIEBITS);
+ if (diff >= maxdiff)
+ return (__u32)-1;
+
+ return (cookie -
+ cookie_hash(saddr, daddr, sport, dport, count - diff, 1))
+ & COOKIEMASK;
+}
+
+__u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb, __u16 *mssp)
+{
+ struct ipv6hdr *iph = ipv6_hdr(skb);
+ const struct tcphdr *th = tcp_hdr(skb);
+ int mssind;
+ const __u16 mss = *mssp;
+
+ tcp_sk(sk)->last_synq_overflow = jiffies;
+
+ for (mssind = 0; mss > msstab[mssind + 1]; mssind++)
+ ;
+ *mssp = msstab[mssind] + 1;
+
+ NET_INC_STATS_BH(LINUX_MIB_SYNCOOKIESSENT);
+
+ return secure_tcp_syn_cookie(&iph->saddr, &iph->daddr, th->source,
+ th->dest, ntohl(th->seq),
+ jiffies / (HZ * 60), mssind);
+}
+
+static inline int cookie_check(struct sk_buff *skb, __u32 cookie)
+{
+ struct ipv6hdr *iph = ipv6_hdr(skb);
+ const struct tcphdr *th = tcp_hdr(skb);
+ __u32 seq = ntohl(th->seq) - 1;
+ __u32 mssind = check_tcp_syn_cookie(cookie, &iph->saddr, &iph->daddr,
+ th->source, th->dest, seq,
+ jiffies / (HZ * 60), COUNTER_TRIES);
+
+ return mssind < NUM_MSS ? msstab[mssind] + 1 : 0;
+}
+
+struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
+{
+ struct inet_request_sock *ireq;
+ struct inet6_request_sock *ireq6;
+ struct tcp_request_sock *treq;
+ struct ipv6_pinfo *np = inet6_sk(sk);
+ struct tcp_sock *tp = tcp_sk(sk);
+ const struct tcphdr *th = tcp_hdr(skb);
+ __u32 cookie = ntohl(th->ack_seq) - 1;
+ struct sock *ret = sk;
+ struct request_sock *req;
+ int mss;
+ struct dst_entry *dst;
+ __u8 rcv_wscale;
+
+ if (!sysctl_tcp_syncookies || !th->ack)
+ goto out;
+
+ if (time_after(jiffies, tp->last_synq_overflow + TCP_TIMEOUT_INIT) ||
+ (mss = cookie_check(skb, cookie)) == 0) {
+ NET_INC_STATS_BH(LINUX_MIB_SYNCOOKIESFAILED);
+ goto out;
+ }
+
+ NET_INC_STATS_BH(LINUX_MIB_SYNCOOKIESRECV);
+
+ ret = NULL;
+ req = inet6_reqsk_alloc(&tcp6_request_sock_ops);
+ if (!req)
+ goto out;
+
+ ireq = inet_rsk(req);
+ ireq6 = inet6_rsk(req);
+ treq = tcp_rsk(req);
+ ireq6->pktopts = NULL;
+
+ if (security_inet_conn_request(sk, skb, req)) {
+ reqsk_free(req);
+ goto out;
+ }
+
+ req->mss = mss;
+ ireq->rmt_port = th->source;
+ ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr);
+ ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr);
+ if (ipv6_opt_accepted(sk, skb) ||
+ np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||
+ np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) {
+ atomic_inc(&skb->users);
+ ireq6->pktopts = skb;
+ }
+
+ ireq6->iif = sk->sk_bound_dev_if;
+ /* So that link locals have meaning */
+ if (!sk->sk_bound_dev_if &&
+ ipv6_addr_type(&ireq6->rmt_addr) & IPV6_ADDR_LINKLOCAL)
+ ireq6->iif = inet6_iif(skb);
+
+ req->expires = 0UL;
+ req->retrans = 0;
+ ireq->snd_wscale = ireq->rcv_wscale = ireq->tstamp_ok = 0;
+ ireq->wscale_ok = ireq->sack_ok = 0;
+ treq->rcv_isn = ntohl(th->seq) - 1;
+ treq->snt_isn = cookie;
+
+ /*
+ * We need to lookup the dst_entry to get the correct window size.
+ * This is taken from tcp_v6_syn_recv_sock. Somebody please enlighten
+ * me if there is a preferred way.
+ */
+ {
+ struct in6_addr *final_p = NULL, final;
+ struct flowi fl;
+ memset(&fl, 0, sizeof(fl));
+ fl.proto = IPPROTO_TCP;
+ ipv6_addr_copy(&fl.fl6_dst, &ireq6->rmt_addr);
+ if (np->opt && np->opt->srcrt) {
+ struct rt0_hdr *rt0 = (struct rt0_hdr *) np->opt->srcrt;
+ ipv6_addr_copy(&final, &fl.fl6_dst);
+ ipv6_addr_copy(&fl.fl6_dst, rt0->addr);
+ final_p = &final;
+ }
+ ipv6_addr_copy(&fl.fl6_src, &ireq6->loc_addr);
+ fl.oif = sk->sk_bound_dev_if;
+ fl.fl_ip_dport = inet_rsk(req)->rmt_port;
+ fl.fl_ip_sport = inet_sk(sk)->sport;
+ security_req_classify_flow(req, &fl);
+ if (ip6_dst_lookup(sk, &dst, &fl)) {
+ reqsk_free(req);
+ goto out;
+ }
+ if (final_p)
+ ipv6_addr_copy(&fl.fl6_dst, final_p);
+ if ((xfrm_lookup(&dst, &fl, sk, 0)) < 0)
+ goto out;
+ }
+
+ req->window_clamp = dst_metric(dst, RTAX_WINDOW);
+ tcp_select_initial_window(tcp_full_space(sk), req->mss,
+ &req->rcv_wnd, &req->window_clamp,
+ 0, &rcv_wscale);
+
+ ireq->rcv_wscale = rcv_wscale;
+
+ ret = get_cookie_sock(sk, skb, req, dst);
+
+out: return ret;
+}
+
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 93980c3..ad39bd1 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -520,6 +520,20 @@ done:
return err;
}
+static inline void syn_flood_warning(struct sk_buff *skb)
+{
+#ifdef CONFIG_SYN_COOKIES
+ if (sysctl_tcp_syncookies)
+ printk(KERN_INFO
+ "TCPv6: Possible SYN flooding on port %d. "
+ "Sending cookies.\n", ntohs(tcp_hdr(skb)->dest));
+ else
+#endif
+ printk(KERN_INFO
+ "TCPv6: Possible SYN flooding on port %d. "
+ "Dropping request.\n", ntohs(tcp_hdr(skb)->dest));
+}
+
static void tcp_v6_reqsk_destructor(struct request_sock *req)
{
if (inet6_rsk(req)->pktopts)
@@ -923,7 +937,7 @@ done_opts:
}
#endif
-static struct request_sock_ops tcp6_request_sock_ops __read_mostly = {
+struct request_sock_ops tcp6_request_sock_ops __read_mostly = {
.family = AF_INET6,
.obj_size = sizeof(struct tcp6_request_sock),
.rtx_syn_ack = tcp_v6_send_synack,
@@ -1221,9 +1235,9 @@ static struct sock *tcp_v6_hnd_req(struct sock *sk,struct sk_buff *skb)
return NULL;
}
-#if 0 /*def CONFIG_SYN_COOKIES*/
+#ifdef CONFIG_SYN_COOKIES
if (!th->rst && !th->syn && th->ack)
- sk = cookie_v6_check(sk, skb, &(IPCB(skb)->opt));
+ sk = cookie_v6_check(sk, skb);
#endif
return sk;
}
@@ -1239,6 +1253,11 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
struct tcp_sock *tp = tcp_sk(sk);
struct request_sock *req = NULL;
__u32 isn = TCP_SKB_CB(skb)->when;
+#ifdef CONFIG_SYN_COOKIES
+ int want_cookie = 0;
+#else
+#define want_cookie 0
+#endif
if (skb->protocol == htons(ETH_P_IP))
return tcp_v4_conn_request(sk, skb);
@@ -1246,12 +1265,14 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
if (!ipv6_unicast_destination(skb))
goto drop;
- /*
- * There are no SYN attacks on IPv6, yet...
- */
if (inet_csk_reqsk_queue_is_full(sk) && !isn) {
if (net_ratelimit())
- printk(KERN_INFO "TCPv6: dropping request, synflood is possible\n");
+ syn_flood_warning(skb);
+#ifdef CONFIG_SYN_COOKIES
+ if (sysctl_tcp_syncookies)
+ want_cookie = 1;
+ else
+#endif
goto drop;
}
@@ -1272,29 +1293,39 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
tcp_parse_options(skb, &tmp_opt, 0);
+ if (want_cookie) {
+ tcp_clear_options(&tmp_opt);
+ tmp_opt.saw_tstamp = 0;
+ }
+
tmp_opt.tstamp_ok = tmp_opt.saw_tstamp;
tcp_openreq_init(req, &tmp_opt, skb);
treq = inet6_rsk(req);
ipv6_addr_copy(&treq->rmt_addr, &ipv6_hdr(skb)->saddr);
ipv6_addr_copy(&treq->loc_addr, &ipv6_hdr(skb)->daddr);
- TCP_ECN_create_request(req, tcp_hdr(skb));
treq->pktopts = NULL;
- if (ipv6_opt_accepted(sk, skb) ||
- np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||
- np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) {
- atomic_inc(&skb->users);
- treq->pktopts = skb;
- }
- treq->iif = sk->sk_bound_dev_if;
+ if (!want_cookie)
+ TCP_ECN_create_request(req, tcp_hdr(skb));
+
+ if (want_cookie) {
+ isn = cookie_v6_init_sequence(sk, skb, &req->mss);
+ } else if (!isn) {
+ if (ipv6_opt_accepted(sk, skb) ||
+ np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||
+ np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) {
+ atomic_inc(&skb->users);
+ treq->pktopts = skb;
+ }
+ treq->iif = sk->sk_bound_dev_if;
- /* So that link locals have meaning */
- if (!sk->sk_bound_dev_if &&
- ipv6_addr_type(&treq->rmt_addr) & IPV6_ADDR_LINKLOCAL)
- treq->iif = inet6_iif(skb);
+ /* So that link locals have meaning */
+ if (!sk->sk_bound_dev_if &&
+ ipv6_addr_type(&treq->rmt_addr) & IPV6_ADDR_LINKLOCAL)
+ treq->iif = inet6_iif(skb);
- if (isn == 0)
isn = tcp_v6_init_sequence(skb);
+ }
tcp_rsk(req)->snt_isn = isn;
@@ -1303,8 +1334,10 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
if (tcp_v6_send_synack(sk, req, NULL))
goto drop;
- inet6_csk_reqsk_queue_hash_add(sk, req, TCP_TIMEOUT_INIT);
- return 0;
+ if (!want_cookie) {
+ inet6_csk_reqsk_queue_hash_add(sk, req, TCP_TIMEOUT_INIT);
+ return 0;
+ }
drop:
if (req)
--
1.5.3.4
^ permalink raw reply related
* [PATCH] [RFC] 3c509: convert to isa_driver and pnp_driver v3
From: Ondrej Zary @ 2008-02-04 23:02 UTC (permalink / raw)
To: Jeff Garzik; +Cc: netdev, Linux Kernel, Andrew Morton
In-Reply-To: <47A4D791.3050700@garzik.org>
Hello,
this patch converts 3c509 driver to isa_driver and pnp_driver. The result is
that autoloading using udev and hibernation works with ISA PnP cards. It also
adds hibernation support for non-PnP ISA cards.
xcvr module parameter was removed as its value was not used.
Tested using 3 ISA cards in various combinations of PnP and non-PnP modes.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
--- linux-2.6.24-orig/drivers/net/3c509.c 2008-01-27 19:48:19.000000000 +0100
+++ linux-2.6.24-pentium/drivers/net/3c509.c 2008-02-04 22:30:37.000000000 +0100
@@ -54,25 +54,24 @@
v1.19a 28Oct2002 Davud Ruggiero <jdr@farfalle.com>
- Increase *read_eeprom udelay to workaround oops with 2 cards.
v1.19b 08Nov2002 Marc Zyngier <maz@wild-wind.fr.eu.org>
- - Introduce driver model for EISA cards.
+ - Introduce driver model for EISA cards.
+ v1.20 04Feb2008 Ondrej Zary <linux@rainbow-software.org>
+ - convert to isa_driver and pnp_driver and some cleanups
*/
#define DRV_NAME "3c509"
-#define DRV_VERSION "1.19b"
-#define DRV_RELDATE "08Nov2002"
+#define DRV_VERSION "1.20"
+#define DRV_RELDATE "04Feb2008"
/* A few values that may be tweaked. */
/* Time in jiffies before concluding the transmitter is hung. */
#define TX_TIMEOUT (400*HZ/1000)
-/* Maximum events (Rx packets, etc.) to handle at each interrupt. */
-static int max_interrupt_work = 10;
#include <linux/module.h>
-#ifdef CONFIG_MCA
#include <linux/mca.h>
-#endif
-#include <linux/isapnp.h>
+#include <linux/isa.h>
+#include <linux/pnp.h>
#include <linux/string.h>
#include <linux/interrupt.h>
#include <linux/errno.h>
@@ -97,10 +96,6 @@
static char version[] __initdata = DRV_NAME ".c:" DRV_VERSION " " DRV_RELDATE " becker@scyld.com\n";
-#if defined(CONFIG_PM) && (defined(CONFIG_MCA) || defined(CONFIG_EISA))
-#define EL3_SUSPEND
-#endif
-
#ifdef EL3_DEBUG
static int el3_debug = EL3_DEBUG;
#else
@@ -111,6 +106,7 @@
* a global variable so that the mca/eisa probe routines can increment
* it */
static int el3_cards = 0;
+#define EL3_MAX_CARDS 8
/* To minimize the size of the driver source I only define operating
constants if they are used several times. You'll need the manual
@@ -119,7 +115,7 @@
#define EL3_DATA 0x00
#define EL3_CMD 0x0e
#define EL3_STATUS 0x0e
-#define EEPROM_READ 0x80
+#define EEPROM_READ 0x80
#define EL3_IO_EXTENT 16
@@ -168,23 +164,31 @@
*/
#define SKB_QUEUE_SIZE 64
+typedef enum { EL3_ISA, EL3_PNP, EL3_MCA, EL3_EISA } el3_cardtype;
+
struct el3_private {
struct net_device_stats stats;
- struct net_device *next_dev;
spinlock_t lock;
/* skb send-queue */
int head, size;
struct sk_buff *queue[SKB_QUEUE_SIZE];
- enum {
- EL3_MCA,
- EL3_PNP,
- EL3_EISA,
- } type; /* type of device */
- struct device *dev;
+ el3_cardtype type;
};
-static int id_port __initdata = 0x110; /* Start with 0x110 to avoid new sound cards.*/
-static struct net_device *el3_root_dev;
+static int id_port;
+static int current_tag;
+static struct net_device *el3_devs[EL3_MAX_CARDS];
+
+/* Parameters that may be passed into the module. */
+static int debug = -1;
+static int irq[] = {-1, -1, -1, -1, -1, -1, -1, -1};
+/* Maximum events (Rx packets, etc.) to handle at each interrupt. */
+static int max_interrupt_work = 10;
+#ifdef CONFIG_PNP
+static int nopnp;
+#endif
+static int __init el3_common_init(struct net_device *dev);
+static void el3_common_remove (struct net_device *dev);
static ushort id_read_eeprom(int index);
static ushort read_eeprom(int ioaddr, int index);
static int el3_open(struct net_device *dev);
@@ -199,23 +203,277 @@
static void el3_down(struct net_device *dev);
static void el3_up(struct net_device *dev);
static const struct ethtool_ops ethtool_ops;
-#ifdef EL3_SUSPEND
+#ifdef CONFIG_PM
static int el3_suspend(struct device *, pm_message_t);
static int el3_resume(struct device *);
-#else
-#define el3_suspend NULL
-#define el3_resume NULL
#endif
/* generic device remove for all device types */
-#if defined(CONFIG_EISA) || defined(CONFIG_MCA)
static int el3_device_remove (struct device *device);
-#endif
#ifdef CONFIG_NET_POLL_CONTROLLER
static void el3_poll_controller(struct net_device *dev);
#endif
+/* Return 0 on success, 1 on error, 2 when found already detected PnP card */
+static int el3_isa_id_sequence(__be16 *phys_addr)
+{
+ short lrs_state = 0xff;
+ int i;
+
+ /* ISA boards are detected by sending the ID sequence to the
+ ID_PORT. We find cards past the first by setting the 'current_tag'
+ on cards as they are found. Cards with their tag set will not
+ respond to subsequent ID sequences. */
+
+ outb(0x00, id_port);
+ outb(0x00, id_port);
+ for (i = 0; i < 255; i++) {
+ outb(lrs_state, id_port);
+ lrs_state <<= 1;
+ lrs_state = lrs_state & 0x100 ? lrs_state ^ 0xcf : lrs_state;
+ }
+ /* For the first probe, clear all board's tag registers. */
+ if (current_tag == 0)
+ outb(0xd0, id_port);
+ else /* Otherwise kill off already-found boards. */
+ outb(0xd8, id_port);
+ if (id_read_eeprom(7) != 0x6d50)
+ return 1;
+ /* Read in EEPROM data, which does contention-select.
+ Only the lowest address board will stay "on-line".
+ 3Com got the byte order backwards. */
+ for (i = 0; i < 3; i++)
+ phys_addr[i] = htons(id_read_eeprom(i));
+#ifdef CONFIG_PNP
+ if (!nopnp) {
+ /* The ISA PnP 3c509 cards respond to the ID sequence too.
+ This check is needed in order not to register them twice. */
+ for (i = 0; i < el3_cards; i++) {
+ struct el3_private *lp = netdev_priv(el3_devs[i]);
+ if (lp->type == EL3_PNP && !memcmp(phys_addr, el3_devs[i]->dev_addr, ETH_ALEN)) {
+ if (el3_debug > 3)
+ printk(KERN_DEBUG "3c509 with address %02x %02x %02x %02x %02x %02x was found by ISAPnP\n",
+ phys_addr[0] & 0xff, phys_addr[0] >> 8,
+ phys_addr[1] & 0xff, phys_addr[1] >> 8,
+ phys_addr[2] & 0xff, phys_addr[2] >> 8);
+ /* Set the adaptor tag so that the next card can be found. */
+ outb(0xd0 + ++current_tag, id_port);
+ return 2;
+ }
+ }
+ }
+#endif /* CONFIG_PNP */
+ return 0;
+
+}
+
+static void __devinit el3_dev_fill(struct net_device *dev, __be16 *phys_addr,
+ int ioaddr, int irq, int if_port,
+ el3_cardtype type)
+{
+ struct el3_private *lp = netdev_priv(dev);
+
+ memcpy(dev->dev_addr, phys_addr, ETH_ALEN);
+ dev->base_addr = ioaddr;
+ dev->irq = irq;
+ dev->if_port = if_port;
+ lp->type = type;
+}
+
+static int __devinit el3_isa_match(struct device *pdev,
+ unsigned int ndev)
+{
+ struct net_device *dev;
+ int ioaddr, isa_irq, if_port, err;
+ unsigned int iobase;
+ __be16 phys_addr[3];
+
+ while ((err = el3_isa_id_sequence(phys_addr)) == 2)
+ ; /* Skip to next card when PnP card found */
+ if (err == 1)
+ return 0;
+
+ iobase = id_read_eeprom(8);
+ if_port = iobase >> 14;
+ ioaddr = 0x200 + ((iobase & 0x1f) << 4);
+ if (irq[el3_cards] > 1 && irq[el3_cards] < 16)
+ isa_irq = irq[el3_cards];
+ else
+ isa_irq = id_read_eeprom(9) >> 12;
+
+ dev = alloc_etherdev(sizeof (struct el3_private));
+ if (!dev)
+ return -ENOMEM;
+
+ netdev_boot_setup_check(dev);
+
+ if (!request_region(ioaddr, EL3_IO_EXTENT, "3c509-isa")) {
+ free_netdev(dev);
+ return 0;
+ }
+
+ /* Set the adaptor tag so that the next card can be found. */
+ outb(0xd0 + ++current_tag, id_port);
+
+ /* Activate the adaptor at the EEPROM location. */
+ outb((ioaddr >> 4) | 0xe0, id_port);
+
+ EL3WINDOW(0);
+ if (inw(ioaddr) != 0x6d50) {
+ free_netdev(dev);
+ return 0;
+ }
+
+ /* Free the interrupt so that some other card can use it. */
+ outw(0x0f00, ioaddr + WN0_IRQ);
+
+ el3_dev_fill(dev, phys_addr, ioaddr, isa_irq, if_port, EL3_ISA);
+ dev_set_drvdata(pdev, dev);
+ if (el3_common_init(dev)) {
+ free_netdev(dev);
+ return 0;
+ }
+
+ el3_devs[el3_cards++] = dev;
+ return 1;
+}
+
+static int __devexit el3_isa_remove(struct device *pdev,
+ unsigned int ndev)
+{
+ el3_device_remove(pdev);
+ dev_set_drvdata(pdev, NULL);
+ return 0;
+}
+
+#ifdef CONFIG_PM
+static int el3_isa_suspend(struct device *dev, unsigned int n,
+ pm_message_t state)
+{
+ current_tag = 0;
+ return el3_suspend(dev, state);
+}
+
+static int el3_isa_resume(struct device *dev, unsigned int n)
+{
+ struct net_device *ndev = dev_get_drvdata(dev);
+ int ioaddr = ndev->base_addr, err;
+ __be16 phys_addr[3];
+
+ while ((err = el3_isa_id_sequence(phys_addr)) == 2)
+ ; /* Skip to next card when PnP card found */
+ if (err == 1)
+ return 0;
+ /* Set the adaptor tag so that the next card can be found. */
+ outb(0xd0 + ++current_tag, id_port);
+ /* Enable the card */
+ outb((ioaddr >> 4) | 0xe0, id_port);
+ EL3WINDOW(0);
+ if (inw(ioaddr) != 0x6d50)
+ return 1;
+ /* Free the interrupt so that some other card can use it. */
+ outw(0x0f00, ioaddr + WN0_IRQ);
+ return el3_resume(dev);
+}
+#endif
+
+static struct isa_driver el3_isa_driver = {
+ .match = el3_isa_match,
+ .remove = __devexit_p(el3_isa_remove),
+#ifdef CONFIG_PM
+ .suspend = el3_isa_suspend,
+ .resume = el3_isa_resume,
+#endif
+ .driver = {
+ .name = "3c509"
+ },
+};
+static int isa_registered;
+
+#ifdef CONFIG_PNP
+static struct pnp_device_id el3_pnp_ids[] = {
+ { .id = "TCM5090" }, /* 3Com Etherlink III (TP) */
+ { .id = "TCM5091" }, /* 3Com Etherlink III */
+ { .id = "TCM5094" }, /* 3Com Etherlink III (combo) */
+ { .id = "TCM5095" }, /* 3Com Etherlink III (TPO) */
+ { .id = "TCM5098" }, /* 3Com Etherlink III (TPC) */
+ { .id = "PNP80f7" }, /* 3Com Etherlink III compatible */
+ { .id = "PNP80f8" }, /* 3Com Etherlink III compatible */
+ { .id = "" }
+};
+MODULE_DEVICE_TABLE(pnp, el3_pnp_ids);
+
+static int __devinit el3_pnp_probe(struct pnp_dev *pdev,
+ const struct pnp_device_id *id)
+{
+ short i;
+ int ioaddr, irq, if_port;
+ u16 phys_addr[3];
+ struct net_device *dev = NULL;
+ int err;
+
+ ioaddr = pnp_port_start(pdev, 0);
+ if (!request_region(ioaddr, EL3_IO_EXTENT, "3c509-pnp"))
+ return -EBUSY;
+ irq = pnp_irq(pdev, 0);
+ EL3WINDOW(0);
+ for (i = 0; i < 3; i++)
+ phys_addr[i] = htons(read_eeprom(ioaddr, i));
+ if_port = read_eeprom(ioaddr, 8) >> 14;
+ dev = alloc_etherdev(sizeof (struct el3_private));
+ if (!dev) {
+ release_region(ioaddr, EL3_IO_EXTENT);
+ return -ENOMEM;
+ }
+ SET_NETDEV_DEV(dev, &pdev->dev);
+ netdev_boot_setup_check(dev);
+
+ el3_dev_fill(dev, phys_addr, ioaddr, irq, if_port, EL3_PNP);
+ pnp_set_drvdata (pdev, dev);
+ err = el3_common_init(dev);
+
+ if (err) {
+ pnp_set_drvdata (pdev, NULL);
+ free_netdev(dev);
+ return err;
+ }
+
+ el3_devs[el3_cards++] = dev;
+ return 0;
+}
+
+static void __devexit el3_pnp_remove(struct pnp_dev *pdev)
+{
+ el3_common_remove(pnp_get_drvdata(pdev));
+ pnp_set_drvdata(pdev, NULL);
+}
+
+#ifdef CONFIG_PM
+static int el3_pnp_suspend(struct pnp_dev *pdev, pm_message_t state)
+{
+ return el3_suspend(&pdev->dev, state);
+}
+
+static int el3_pnp_resume(struct pnp_dev *pdev)
+{
+ return el3_resume(&pdev->dev);
+}
+#endif
+
+static struct pnp_driver el3_pnp_driver = {
+ .name = "3c509",
+ .id_table = el3_pnp_ids,
+ .probe = el3_pnp_probe,
+ .remove = __devexit_p(el3_pnp_remove),
+#ifdef CONFIG_PM
+ .suspend = el3_pnp_suspend,
+ .resume = el3_pnp_resume,
+#endif
+};
+static int pnp_registered;
+#endif /* CONFIG_PNP */
+
#ifdef CONFIG_EISA
static struct eisa_device_id el3_eisa_ids[] = {
{ "TCM5092" },
@@ -230,13 +488,14 @@
static struct eisa_driver el3_eisa_driver = {
.id_table = el3_eisa_ids,
.driver = {
- .name = "3c509",
+ .name = "3c579",
.probe = el3_eisa_probe,
.remove = __devexit_p (el3_device_remove),
.suspend = el3_suspend,
.resume = el3_resume,
}
};
+static int eisa_registered;
#endif
#ifdef CONFIG_MCA
@@ -271,45 +530,9 @@
.resume = el3_resume,
},
};
+static int mca_registered;
#endif /* CONFIG_MCA */
-#if defined(__ISAPNP__)
-static struct isapnp_device_id el3_isapnp_adapters[] __initdata = {
- { ISAPNP_ANY_ID, ISAPNP_ANY_ID,
- ISAPNP_VENDOR('T', 'C', 'M'), ISAPNP_FUNCTION(0x5090),
- (long) "3Com Etherlink III (TP)" },
- { ISAPNP_ANY_ID, ISAPNP_ANY_ID,
- ISAPNP_VENDOR('T', 'C', 'M'), ISAPNP_FUNCTION(0x5091),
- (long) "3Com Etherlink III" },
- { ISAPNP_ANY_ID, ISAPNP_ANY_ID,
- ISAPNP_VENDOR('T', 'C', 'M'), ISAPNP_FUNCTION(0x5094),
- (long) "3Com Etherlink III (combo)" },
- { ISAPNP_ANY_ID, ISAPNP_ANY_ID,
- ISAPNP_VENDOR('T', 'C', 'M'), ISAPNP_FUNCTION(0x5095),
- (long) "3Com Etherlink III (TPO)" },
- { ISAPNP_ANY_ID, ISAPNP_ANY_ID,
- ISAPNP_VENDOR('T', 'C', 'M'), ISAPNP_FUNCTION(0x5098),
- (long) "3Com Etherlink III (TPC)" },
- { ISAPNP_ANY_ID, ISAPNP_ANY_ID,
- ISAPNP_VENDOR('P', 'N', 'P'), ISAPNP_FUNCTION(0x80f7),
- (long) "3Com Etherlink III compatible" },
- { ISAPNP_ANY_ID, ISAPNP_ANY_ID,
- ISAPNP_VENDOR('P', 'N', 'P'), ISAPNP_FUNCTION(0x80f8),
- (long) "3Com Etherlink III compatible" },
- { } /* terminate list */
-};
-
-static __be16 el3_isapnp_phys_addr[8][3];
-static int nopnp;
-#endif /* __ISAPNP__ */
-
-/* With the driver model introduction for EISA devices, both init
- * and cleanup have been split :
- * - EISA devices probe/remove starts in el3_eisa_probe/el3_device_remove
- * - MCA/ISA still use el3_probe
- *
- * Both call el3_common_init/el3_common_remove. */
-
static int __init el3_common_init(struct net_device *dev)
{
struct el3_private *lp = netdev_priv(dev);
@@ -360,231 +583,11 @@
static void el3_common_remove (struct net_device *dev)
{
- struct el3_private *lp = netdev_priv(dev);
-
- (void) lp; /* Keep gcc quiet... */
-#if defined(__ISAPNP__)
- if (lp->type == EL3_PNP)
- pnp_device_detach(to_pnp_dev(lp->dev));
-#endif
-
unregister_netdev (dev);
release_region(dev->base_addr, EL3_IO_EXTENT);
free_netdev (dev);
}
-static int __init el3_probe(int card_idx)
-{
- struct net_device *dev;
- struct el3_private *lp;
- short lrs_state = 0xff, i;
- int ioaddr, irq, if_port;
- __be16 phys_addr[3];
- static int current_tag;
- int err = -ENODEV;
-#if defined(__ISAPNP__)
- static int pnp_cards;
- struct pnp_dev *idev = NULL;
- int pnp_found = 0;
-
- if (nopnp == 1)
- goto no_pnp;
-
- for (i=0; el3_isapnp_adapters[i].vendor != 0; i++) {
- int j;
- while ((idev = pnp_find_dev(NULL,
- el3_isapnp_adapters[i].vendor,
- el3_isapnp_adapters[i].function,
- idev))) {
- if (pnp_device_attach(idev) < 0)
- continue;
- if (pnp_activate_dev(idev) < 0) {
-__again:
- pnp_device_detach(idev);
- continue;
- }
- if (!pnp_port_valid(idev, 0) || !pnp_irq_valid(idev, 0))
- goto __again;
- ioaddr = pnp_port_start(idev, 0);
- if (!request_region(ioaddr, EL3_IO_EXTENT, "3c509 PnP")) {
- pnp_device_detach(idev);
- return -EBUSY;
- }
- irq = pnp_irq(idev, 0);
- if (el3_debug > 3)
- printk ("ISAPnP reports %s at i/o 0x%x, irq %d\n",
- (char*) el3_isapnp_adapters[i].driver_data, ioaddr, irq);
- EL3WINDOW(0);
- for (j = 0; j < 3; j++)
- el3_isapnp_phys_addr[pnp_cards][j] =
- phys_addr[j] =
- htons(read_eeprom(ioaddr, j));
- if_port = read_eeprom(ioaddr, 8) >> 14;
- dev = alloc_etherdev(sizeof (struct el3_private));
- if (!dev) {
- release_region(ioaddr, EL3_IO_EXTENT);
- pnp_device_detach(idev);
- return -ENOMEM;
- }
-
- SET_NETDEV_DEV(dev, &idev->dev);
- pnp_cards++;
-
- netdev_boot_setup_check(dev);
- pnp_found = 1;
- goto found;
- }
- }
-no_pnp:
-#endif /* __ISAPNP__ */
-
- /* Select an open I/O location at 0x1*0 to do contention select. */
- for ( ; id_port < 0x200; id_port += 0x10) {
- if (!request_region(id_port, 1, "3c509"))
- continue;
- outb(0x00, id_port);
- outb(0xff, id_port);
- if (inb(id_port) & 0x01){
- release_region(id_port, 1);
- break;
- } else
- release_region(id_port, 1);
- }
- if (id_port >= 0x200) {
- /* Rare -- do we really need a warning? */
- printk(" WARNING: No I/O port available for 3c509 activation.\n");
- return -ENODEV;
- }
-
- /* Next check for all ISA bus boards by sending the ID sequence to the
- ID_PORT. We find cards past the first by setting the 'current_tag'
- on cards as they are found. Cards with their tag set will not
- respond to subsequent ID sequences. */
-
- outb(0x00, id_port);
- outb(0x00, id_port);
- for(i = 0; i < 255; i++) {
- outb(lrs_state, id_port);
- lrs_state <<= 1;
- lrs_state = lrs_state & 0x100 ? lrs_state ^ 0xcf : lrs_state;
- }
-
- /* For the first probe, clear all board's tag registers. */
- if (current_tag == 0)
- outb(0xd0, id_port);
- else /* Otherwise kill off already-found boards. */
- outb(0xd8, id_port);
-
- if (id_read_eeprom(7) != 0x6d50) {
- return -ENODEV;
- }
-
- /* Read in EEPROM data, which does contention-select.
- Only the lowest address board will stay "on-line".
- 3Com got the byte order backwards. */
- for (i = 0; i < 3; i++) {
- phys_addr[i] = htons(id_read_eeprom(i));
- }
-
-#if defined(__ISAPNP__)
- if (nopnp == 0) {
- /* The ISA PnP 3c509 cards respond to the ID sequence.
- This check is needed in order not to register them twice. */
- for (i = 0; i < pnp_cards; i++) {
- if (phys_addr[0] == el3_isapnp_phys_addr[i][0] &&
- phys_addr[1] == el3_isapnp_phys_addr[i][1] &&
- phys_addr[2] == el3_isapnp_phys_addr[i][2])
- {
- if (el3_debug > 3)
- printk("3c509 with address %02x %02x %02x %02x %02x %02x was found by ISAPnP\n",
- phys_addr[0] & 0xff, phys_addr[0] >> 8,
- phys_addr[1] & 0xff, phys_addr[1] >> 8,
- phys_addr[2] & 0xff, phys_addr[2] >> 8);
- /* Set the adaptor tag so that the next card can be found. */
- outb(0xd0 + ++current_tag, id_port);
- goto no_pnp;
- }
- }
- }
-#endif /* __ISAPNP__ */
-
- {
- unsigned int iobase = id_read_eeprom(8);
- if_port = iobase >> 14;
- ioaddr = 0x200 + ((iobase & 0x1f) << 4);
- }
- irq = id_read_eeprom(9) >> 12;
-
- dev = alloc_etherdev(sizeof (struct el3_private));
- if (!dev)
- return -ENOMEM;
-
- netdev_boot_setup_check(dev);
-
- /* Set passed-in IRQ or I/O Addr. */
- if (dev->irq > 1 && dev->irq < 16)
- irq = dev->irq;
-
- if (dev->base_addr) {
- if (dev->mem_end == 0x3c509 /* Magic key */
- && dev->base_addr >= 0x200 && dev->base_addr <= 0x3e0)
- ioaddr = dev->base_addr & 0x3f0;
- else if (dev->base_addr != ioaddr)
- goto out;
- }
-
- if (!request_region(ioaddr, EL3_IO_EXTENT, "3c509")) {
- err = -EBUSY;
- goto out;
- }
-
- /* Set the adaptor tag so that the next card can be found. */
- outb(0xd0 + ++current_tag, id_port);
-
- /* Activate the adaptor at the EEPROM location. */
- outb((ioaddr >> 4) | 0xe0, id_port);
-
- EL3WINDOW(0);
- if (inw(ioaddr) != 0x6d50)
- goto out1;
-
- /* Free the interrupt so that some other card can use it. */
- outw(0x0f00, ioaddr + WN0_IRQ);
-
-#if defined(__ISAPNP__)
- found: /* PNP jumps here... */
-#endif /* __ISAPNP__ */
-
- memcpy(dev->dev_addr, phys_addr, sizeof(phys_addr));
- dev->base_addr = ioaddr;
- dev->irq = irq;
- dev->if_port = if_port;
- lp = netdev_priv(dev);
-#if defined(__ISAPNP__)
- lp->dev = &idev->dev;
- if (pnp_found)
- lp->type = EL3_PNP;
-#endif
- err = el3_common_init(dev);
-
- if (err)
- goto out1;
-
- el3_cards++;
- lp->next_dev = el3_root_dev;
- el3_root_dev = dev;
- return 0;
-
-out1:
-#if defined(__ISAPNP__)
- if (idev)
- pnp_device_detach(idev);
-#endif
-out:
- free_netdev(dev);
- return err;
-}
-
#ifdef CONFIG_MCA
static int __init el3_mca_probe(struct device *device)
{
@@ -613,7 +616,7 @@
irq = pos5 & 0x0f;
- printk("3c529: found %s at slot %d\n",
+ printk(KERN_INFO "3c529: found %s at slot %d\n",
el3_mca_adapter_names[mdev->index], slot + 1);
/* claim the slot */
@@ -626,7 +629,7 @@
irq = mca_device_transform_irq(mdev, irq);
ioaddr = mca_device_transform_ioport(mdev, ioaddr);
if (el3_debug > 2) {
- printk("3c529: irq %d ioaddr 0x%x ifport %d\n", irq, ioaddr, if_port);
+ printk(KERN_DEBUG "3c529: irq %d ioaddr 0x%x ifport %d\n", irq, ioaddr, if_port);
}
EL3WINDOW(0);
for (i = 0; i < 3; i++) {
@@ -641,13 +644,7 @@
netdev_boot_setup_check(dev);
- memcpy(dev->dev_addr, phys_addr, sizeof(phys_addr));
- dev->base_addr = ioaddr;
- dev->irq = irq;
- dev->if_port = if_port;
- lp = netdev_priv(dev);
- lp->dev = device;
- lp->type = EL3_MCA;
+ el3_dev_fill(dev, phys_addr, ioaddr, irq, if_port, EL3_MCA);
device->driver_data = dev;
err = el3_common_init(dev);
@@ -657,7 +654,7 @@
return -ENOMEM;
}
- el3_cards++;
+ el3_devs[el3_cards++] = dev;
return 0;
}
@@ -678,7 +675,7 @@
edev = to_eisa_device (device);
ioaddr = edev->base_addr;
- if (!request_region(ioaddr, EL3_IO_EXTENT, "3c509"))
+ if (!request_region(ioaddr, EL3_IO_EXTENT, "3c579-eisa"))
return -EBUSY;
/* Change the register set to the configuration window 0. */
@@ -700,13 +697,7 @@
netdev_boot_setup_check(dev);
- memcpy(dev->dev_addr, phys_addr, sizeof(phys_addr));
- dev->base_addr = ioaddr;
- dev->irq = irq;
- dev->if_port = if_port;
- lp = netdev_priv(dev);
- lp->dev = device;
- lp->type = EL3_EISA;
+ el3_dev_fill(dev, phys_addr, ioaddr, irq, if_port, EL3_EISA);
eisa_set_drvdata (edev, dev);
err = el3_common_init(dev);
@@ -716,12 +707,11 @@
return err;
}
- el3_cards++;
+ el3_devs[el3_cards++] = dev;
return 0;
}
#endif
-#if defined(CONFIG_EISA) || defined(CONFIG_MCA)
/* This remove works for all device types.
*
* The net dev must be stored in the driver_data field */
@@ -734,7 +724,6 @@
el3_common_remove (dev);
return 0;
}
-#endif
/* Read a word from the EEPROM using the regular EEPROM access register.
Assume that we are in register window zero.
@@ -749,7 +738,7 @@
}
/* Read a word from the EEPROM when in the ISA ID probe state. */
-static ushort __init id_read_eeprom(int index)
+static ushort id_read_eeprom(int index)
{
int bit, word = 0;
@@ -765,7 +754,7 @@
word = (word << 1) + (inb(id_port) & 0x01);
if (el3_debug > 3)
- printk(" 3c509 EEPROM word %d %#4.4x.\n", index, word);
+ printk(KERN_DEBUG " 3c509 EEPROM word %d %#4.4x.\n", index, word);
return word;
}
@@ -787,13 +776,13 @@
EL3WINDOW(0);
if (el3_debug > 3)
- printk("%s: Opening, IRQ %d status@%x %4.4x.\n", dev->name,
+ printk(KERN_DEBUG "%s: Opening, IRQ %d status@%x %4.4x.\n", dev->name,
dev->irq, ioaddr + EL3_STATUS, inw(ioaddr + EL3_STATUS));
el3_up(dev);
if (el3_debug > 3)
- printk("%s: Opened 3c509 IRQ %d status %4.4x.\n",
+ printk(KERN_DEBUG "%s: Opened 3c509 IRQ %d status %4.4x.\n",
dev->name, dev->irq, inw(ioaddr + EL3_STATUS));
return 0;
@@ -806,7 +795,7 @@
int ioaddr = dev->base_addr;
/* Transmitter timeout, serious problems. */
- printk("%s: transmit timed out, Tx_status %2.2x status %4.4x "
+ printk(KERN_WARNING "%s: transmit timed out, Tx_status %2.2x status %4.4x "
"Tx FIFO room %d.\n",
dev->name, inb(ioaddr + TX_STATUS), inw(ioaddr + EL3_STATUS),
inw(ioaddr + TX_FREE));
@@ -831,7 +820,7 @@
lp->stats.tx_bytes += skb->len;
if (el3_debug > 4) {
- printk("%s: el3_start_xmit(length = %u) called, status %4.4x.\n",
+ printk(KERN_DEBUG "%s: el3_start_xmit(length = %u) called, status %4.4x.\n",
dev->name, skb->len, inw(ioaddr + EL3_STATUS));
}
#if 0
@@ -840,7 +829,7 @@
ushort status = inw(ioaddr + EL3_STATUS);
if (status & 0x0001 /* IRQ line active, missed one. */
&& inw(ioaddr + EL3_STATUS) & 1) { /* Make sure. */
- printk("%s: Missed interrupt, status then %04x now %04x"
+ printk(KERN_DEBUG "%s: Missed interrupt, status then %04x now %04x"
" Tx %2.2x Rx %4.4x.\n", dev->name, status,
inw(ioaddr + EL3_STATUS), inb(ioaddr + TX_STATUS),
inw(ioaddr + RX_STATUS));
@@ -914,7 +903,7 @@
if (el3_debug > 4) {
status = inw(ioaddr + EL3_STATUS);
- printk("%s: interrupt, status %4.4x.\n", dev->name, status);
+ printk(KERN_DEBUG "%s: interrupt, status %4.4x.\n", dev->name, status);
}
while ((status = inw(ioaddr + EL3_STATUS)) &
@@ -925,7 +914,7 @@
if (status & TxAvailable) {
if (el3_debug > 5)
- printk(" TX room bit was handled.\n");
+ printk(KERN_DEBUG " TX room bit was handled.\n");
/* There's room in the FIFO for a full-sized packet. */
outw(AckIntr | TxAvailable, ioaddr + EL3_CMD);
netif_wake_queue (dev);
@@ -964,7 +953,7 @@
}
if (--i < 0) {
- printk("%s: Infinite loop in interrupt, status %4.4x.\n",
+ printk(KERN_ERR "%s: Infinite loop in interrupt, status %4.4x.\n",
dev->name, status);
/* Clear all interrupts. */
outw(AckIntr | 0xFF, ioaddr + EL3_CMD);
@@ -975,7 +964,7 @@
}
if (el3_debug > 4) {
- printk("%s: exiting interrupt, status %4.4x.\n", dev->name,
+ printk(KERN_DEBUG "%s: exiting interrupt, status %4.4x.\n", dev->name,
inw(ioaddr + EL3_STATUS));
}
spin_unlock(&lp->lock);
@@ -1450,7 +1439,7 @@
}
/* Power Management support functions */
-#ifdef EL3_SUSPEND
+#ifdef CONFIG_PM
static int
el3_suspend(struct device *pdev, pm_message_t state)
@@ -1500,79 +1489,102 @@
return 0;
}
-#endif /* EL3_SUSPEND */
-
-/* Parameters that may be passed into the module. */
-static int debug = -1;
-static int irq[] = {-1, -1, -1, -1, -1, -1, -1, -1};
-static int xcvr[] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
+#endif /* CONFIG_PM */
module_param(debug,int, 0);
module_param_array(irq, int, NULL, 0);
-module_param_array(xcvr, int, NULL, 0);
module_param(max_interrupt_work, int, 0);
MODULE_PARM_DESC(debug, "debug level (0-6)");
MODULE_PARM_DESC(irq, "IRQ number(s) (assigned)");
-MODULE_PARM_DESC(xcvr,"transceiver(s) (0=internal, 1=external)");
MODULE_PARM_DESC(max_interrupt_work, "maximum events handled per interrupt");
-#if defined(__ISAPNP__)
+#ifdef CONFIG_PNP
module_param(nopnp, int, 0);
MODULE_PARM_DESC(nopnp, "disable ISA PnP support (0-1)");
-MODULE_DEVICE_TABLE(isapnp, el3_isapnp_adapters);
-#endif /* __ISAPNP__ */
-MODULE_DESCRIPTION("3Com Etherlink III (3c509, 3c509B) ISA/PnP ethernet driver");
+#endif /* CONFIG_PNP */
+MODULE_DESCRIPTION("3Com Etherlink III (3c509, 3c509B, 3c529, 3c579) ethernet driver");
MODULE_LICENSE("GPL");
static int __init el3_init_module(void)
{
int ret = 0;
- el3_cards = 0;
if (debug >= 0)
el3_debug = debug;
- el3_root_dev = NULL;
- while (el3_probe(el3_cards) == 0) {
- if (irq[el3_cards] > 1)
- el3_root_dev->irq = irq[el3_cards];
- if (xcvr[el3_cards] >= 0)
- el3_root_dev->if_port = xcvr[el3_cards];
- el3_cards++;
+#ifdef CONFIG_PNP
+ if (!nopnp) {
+ ret = pnp_register_driver(&el3_pnp_driver);
+ if (!ret)
+ pnp_registered = 1;
+ }
+#endif
+ /* Select an open I/O location at 0x1*0 to do ISA contention select. */
+ /* Start with 0x110 to avoid some sound cards.*/
+ for (id_port = 0x110 ; id_port < 0x200; id_port += 0x10) {
+ if (!request_region(id_port, 1, "3c509-control"))
+ continue;
+ outb(0x00, id_port);
+ outb(0xff, id_port);
+ if (inb(id_port) & 0x01)
+ break;
+ else
+ release_region(id_port, 1);
+ }
+ if (id_port >= 0x200) {
+ id_port = 0;
+ printk(KERN_ERR "No I/O port available for 3c509 activation.\n");
+ } else {
+ ret = isa_register_driver(&el3_isa_driver, EL3_MAX_CARDS);
+ if (!ret)
+ isa_registered = 1;
}
-
#ifdef CONFIG_EISA
ret = eisa_driver_register(&el3_eisa_driver);
+ if (!ret)
+ eisa_registeted = 1;
#endif
#ifdef CONFIG_MCA
- {
- int err = mca_register_driver(&el3_mca_driver);
- if (ret == 0)
- ret = err;
- }
+ ret = mca_register_driver(&el3_mca_driver);
+ if (!ret)
+ mca_registered = 1;
+#endif
+
+#ifdef CONFIG_PNP
+ if (pnp_registered)
+ ret = 0;
+#endif
+ if (isa_registered)
+ ret = 0;
+#ifdef CONFIG_EISA
+ if (eisa_registered)
+ ret = 0;
+#endif
+#ifdef CONFIG_MCA
+ if (mca_registered)
+ ret = 0;
#endif
return ret;
}
static void __exit el3_cleanup_module(void)
{
- struct net_device *next_dev;
-
- while (el3_root_dev) {
- struct el3_private *lp = netdev_priv(el3_root_dev);
-
- next_dev = lp->next_dev;
- el3_common_remove (el3_root_dev);
- el3_root_dev = next_dev;
- }
-
+#ifdef CONFIG_PNP
+ if (pnp_registered)
+ pnp_unregister_driver(&el3_pnp_driver);
+#endif
+ if (isa_registered)
+ isa_unregister_driver(&el3_isa_driver);
+ if (id_port)
+ release_region(id_port, 1);
#ifdef CONFIG_EISA
- eisa_driver_unregister (&el3_eisa_driver);
+ if (eisa_registered)
+ eisa_driver_unregister (&el3_eisa_driver);
#endif
#ifdef CONFIG_MCA
- mca_unregister_driver(&el3_mca_driver);
+ if (mca_registered)
+ mca_unregister_driver(&el3_mca_driver);
#endif
}
module_init (el3_init_module);
module_exit (el3_cleanup_module);
-
--
Ondrej Zary
^ permalink raw reply
* Re: [PATCH 2/2] ehea: add memory remove hotplug support
From: Michael Ellerman @ 2008-02-04 23:14 UTC (permalink / raw)
To: Jan-Bernd Themann
Cc: Jeff Garzik, Thomas Klein, Jan-Bernd Themann, netdev,
linux-kernel, linux-ppc, Christoph Raisch, Marcus Eder
In-Reply-To: <200802041624.31228.ossthema@de.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 1706 bytes --]
On Mon, 2008-02-04 at 16:24 +0100, Jan-Bernd Themann wrote:
> On Monday 04 February 2008 15:46, Michael Ellerman wrote:
> > On Mon, 2008-02-04 at 14:04 +0100, Jan-Bernd Themann wrote:
> > > Add memory remove hotplug support
>
> > > @@ -3559,6 +3578,10 @@ int __init ehea_module_init(void)
> > > if (ret)
> > > ehea_info("failed registering reboot notifier");
> > >
> > > + ret = register_memory_notifier(&ehea_mem_nb);
> > > + if (ret)
> > > + ehea_info("failed registering memory remove notifier");
> > >
> > > ret = crash_shutdown_register(&ehea_crash_handler);
> > > if (ret)
> > > ehea_info("failed registering crash handler");
> >
> > You don't do anything except print a message if the registration fails.
> > What happens when someone tries to remove memory but the memory notifier
> > wasn't registered properly? Bang?
>
> In case the registration fails and somebody tries to free memory:
> - Driver will not remove the affected memory from the eHEA memory region
> --> Firmware (phyp) can not free that memory (as marked as used)
> --> Therefore the removed memory could not be used in an other partition
>
> It makes sense to allow the driver to work anyway. Having no ethernet
> would not really be a good alternative.
Yeah I agree. I wasn't clear from the patch that no notifier -> no
memory removed. Rather than, no notifier -> memory removed and ehea
isn't told about it.
cheers
--
Michael Ellerman
OzLabs, IBM Australia Development Lab
wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)
We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* [PATCH] Add IPv6 support to TCP SYN cookies
From: Glenn Griffin @ 2008-02-04 23:01 UTC (permalink / raw)
To: netdev, linux-kernel; +Cc: Andi Kleen
Add IPv6 support to TCP SYN cookies. This is written and tested against
2.6.24, and applies cleanly to linus' current HEAD (d2fc0b). Unfortunately
linus' HEAD breaks my sky2 card at the moment, so I'm unable to test against
that. I see no reason why it would be affected though. Comments/suggestions
are welcome.
Signed-off-by: Glenn Griffin <ggriffin.kernel@gmail.com>
---
include/net/tcp.h | 4 +
net/ipv4/syncookies.c | 203 ++++++++++++++++++++++++++++++++++++++++++++++++-
net/ipv6/tcp_ipv6.c | 77 +++++++++++++-----
3 files changed, 260 insertions(+), 24 deletions(-)
diff --git a/include/net/tcp.h b/include/net/tcp.h
index cb5b033..02dc6dd 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -435,6 +435,9 @@ extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
struct ip_options *opt);
extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb,
__u16 *mss);
+extern struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb);
+extern __u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb,
+ __u16 *mss);
/* tcp_output.c */
@@ -1337,6 +1340,7 @@ extern int tcp_proc_register(struct tcp_seq_afinfo *afinfo);
extern void tcp_proc_unregister(struct tcp_seq_afinfo *afinfo);
extern struct request_sock_ops tcp_request_sock_ops;
+extern struct request_sock_ops tcp6_request_sock_ops;
extern int tcp_v4_destroy_sock(struct sock *sk);
diff --git a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c
index 2da1be0..b342bae 100644
--- a/net/ipv4/syncookies.c
+++ b/net/ipv4/syncookies.c
@@ -3,6 +3,7 @@
*
* Copyright (C) 1997 Andi Kleen
* Based on ideas by D.J.Bernstein and Eric Schenk.
+ * IPv6 Support Added by Glenn Griffin (2008)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -10,8 +11,6 @@
* 2 of the License, or (at your option) any later version.
*
* $Id: syncookies.c,v 1.18 2002/02/01 22:01:04 davem Exp $
- *
- * Missing: IPv6 support.
*/
#include <linux/tcp.h>
@@ -19,6 +18,7 @@
#include <linux/random.h>
#include <linux/cryptohash.h>
#include <linux/kernel.h>
+#include <net/ipv6.h>
#include <net/tcp.h>
extern int sysctl_tcp_syncookies;
@@ -281,3 +281,202 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
ret = get_cookie_sock(sk, skb, req, &rt->u.dst);
out: return ret;
}
+
+/* IPv6 Implementation
+ * Just a reimplementation of the above IPv4 implementation adjusting for
+ * the longer address length. Could optionally add an additional addrlen
+ * argument to most of the above functions.
+ *
+ * Reference the code comments above to understand what is going on
+ */
+
+static u32 cookie_hash6(__be32 *saddr, __be32 *daddr, __be16 sport,
+ __be16 dport, u32 count, int c)
+{
+ __u32 tmp[16 + 5 + SHA_WORKSPACE_WORDS];
+
+ /*
+ * we have 320 bits of information to hash, copy in the remaining
+ * 192 bits required for sha_transform, from the syncookie_secret
+ * and overwrite the digest with the secret
+ */
+ memcpy(tmp + 10, syncookie_secret[c], 44);
+ memcpy(tmp, saddr, 16);
+ memcpy(tmp + 4, daddr, 16);
+ tmp[8] = ((__force u32)sport << 16) + (__force u32)dport;
+ tmp[9] = count;
+ sha_transform(tmp + 16, (__u8 *)tmp, tmp + 16 + 5);
+
+ return tmp[17];
+}
+
+static __u32 secure_tcp_syn_cookie6(__be32 *saddr, __be32 *daddr, __be16 sport,
+ __be16 dport, __u32 sseq, __u32 count,
+ __u32 data)
+{
+ return (cookie_hash6(saddr, daddr, sport, dport, 0, 0) +
+ sseq + (count << COOKIEBITS) +
+ ((cookie_hash6(saddr, daddr, sport, dport, count, 1) + data)
+ & COOKIEMASK));
+}
+
+static __u32 check_tcp_syn_cookie6(__u32 cookie, __be32 *saddr, __be32 *daddr,
+ __be16 sport, __be16 dport, __u32 sseq,
+ __u32 count, __u32 maxdiff)
+{
+ __u32 diff;
+
+ cookie -= cookie_hash6(saddr, daddr, sport, dport, 0, 0) + sseq;
+
+ diff = (count - (cookie >> COOKIEBITS)) & ((__u32) -1 >> COOKIEBITS);
+ if (diff >= maxdiff)
+ return (__u32)-1;
+
+ return (cookie -
+ cookie_hash6(saddr, daddr, sport, dport, count - diff, 1))
+ & COOKIEMASK;
+}
+
+__u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb, __u16 *mssp)
+{
+ struct ipv6hdr *iph = ipv6_hdr(skb);
+ const struct tcphdr *th = tcp_hdr(skb);
+ int mssind;
+ const __u16 mss = *mssp;
+
+ tcp_sk(sk)->last_synq_overflow = jiffies;
+
+ for (mssind = 0; mss > msstab[mssind + 1]; mssind++)
+ ;
+ *mssp = msstab[mssind] + 1;
+
+ NET_INC_STATS_BH(LINUX_MIB_SYNCOOKIESSENT);
+
+ return secure_tcp_syn_cookie6(iph->saddr.s6_addr32,
+ iph->daddr.s6_addr32,
+ th->source, th->dest, ntohl(th->seq),
+ jiffies / (HZ * 60), mssind);
+}
+
+static inline int cookie_check6(struct sk_buff *skb, __u32 cookie)
+{
+ struct ipv6hdr *iph = ipv6_hdr(skb);
+ const struct tcphdr *th = tcp_hdr(skb);
+ __u32 seq = ntohl(th->seq) - 1;
+ __u32 mssind = check_tcp_syn_cookie6(cookie, iph->saddr.s6_addr32,
+ iph->daddr.s6_addr32, th->source,
+ th->dest, seq, jiffies / (HZ * 60),
+ COUNTER_TRIES);
+
+ return mssind < NUM_MSS ? msstab[mssind] + 1 : 0;
+}
+
+struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
+{
+ struct inet_request_sock *ireq;
+ struct inet6_request_sock *ireq6;
+ struct tcp_request_sock *treq;
+ struct ipv6_pinfo *np = inet6_sk(sk);
+ struct tcp_sock *tp = tcp_sk(sk);
+ const struct tcphdr *th = tcp_hdr(skb);
+ __u32 cookie = ntohl(th->ack_seq) - 1;
+ struct sock *ret = sk;
+ struct request_sock *req;
+ int mss;
+ struct dst_entry *dst;
+ __u8 rcv_wscale;
+
+ if (!sysctl_tcp_syncookies || !th->ack)
+ goto out;
+
+ if (time_after(jiffies, tp->last_synq_overflow + TCP_TIMEOUT_INIT) ||
+ (mss = cookie_check6(skb, cookie)) == 0) {
+ NET_INC_STATS_BH(LINUX_MIB_SYNCOOKIESFAILED);
+ goto out;
+ }
+
+ NET_INC_STATS_BH(LINUX_MIB_SYNCOOKIESRECV);
+
+ ret = NULL;
+ req = inet6_reqsk_alloc(&tcp6_request_sock_ops);
+ if (!req)
+ goto out;
+
+ ireq = inet_rsk(req);
+ ireq6 = inet6_rsk(req);
+ treq = tcp_rsk(req);
+ ireq6->pktopts = NULL;
+
+ if (security_inet_conn_request(sk, skb, req)) {
+ reqsk_free(req);
+ goto out;
+ }
+
+ req->mss = mss;
+ ireq->rmt_port = th->source;
+ ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr);
+ ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr);
+ if (ipv6_opt_accepted(sk, skb) ||
+ np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||
+ np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) {
+ atomic_inc(&skb->users);
+ ireq6->pktopts = skb;
+ }
+
+ ireq6->iif = sk->sk_bound_dev_if;
+ /* So that link locals have meaning */
+ if (!sk->sk_bound_dev_if &&
+ ipv6_addr_type(&ireq6->rmt_addr) & IPV6_ADDR_LINKLOCAL)
+ ireq6->iif = inet6_iif(skb);
+
+ req->expires = 0UL;
+ req->retrans = 0;
+ ireq->snd_wscale = ireq->rcv_wscale = ireq->tstamp_ok = 0;
+ ireq->wscale_ok = ireq->sack_ok = 0;
+ treq->rcv_isn = ntohl(th->seq) - 1;
+ treq->snt_isn = cookie;
+
+ /*
+ * We need to lookup the dst_entry to get the correct window size.
+ * This is taken from tcp_v6_syn_recv_sock. Somebody please enlighten
+ * me if there is a preferred way.
+ */
+ {
+ struct in6_addr *final_p = NULL, final;
+ struct flowi fl;
+ memset(&fl, 0, sizeof(fl));
+ fl.proto = IPPROTO_TCP;
+ ipv6_addr_copy(&fl.fl6_dst, &ireq6->rmt_addr);
+ if (np->opt && np->opt->srcrt) {
+ struct rt0_hdr *rt0 = (struct rt0_hdr *) np->opt->srcrt;
+ ipv6_addr_copy(&final, &fl.fl6_dst);
+ ipv6_addr_copy(&fl.fl6_dst, rt0->addr);
+ final_p = &final;
+ }
+ ipv6_addr_copy(&fl.fl6_src, &ireq6->loc_addr);
+ fl.oif = sk->sk_bound_dev_if;
+ fl.fl_ip_dport = inet_rsk(req)->rmt_port;
+ fl.fl_ip_sport = inet_sk(sk)->sport;
+ security_req_classify_flow(req, &fl);
+ if (ip6_dst_lookup(sk, &dst, &fl)) {
+ reqsk_free(req);
+ goto out;
+ }
+ if (final_p)
+ ipv6_addr_copy(&fl.fl6_dst, final_p);
+ if ((xfrm_lookup(&dst, &fl, sk, 0)) < 0)
+ goto out;
+ }
+
+ req->window_clamp = dst_metric(dst, RTAX_WINDOW);
+ tcp_select_initial_window(tcp_full_space(sk), req->mss,
+ &req->rcv_wnd, &req->window_clamp,
+ 0, &rcv_wscale);
+
+ ireq->rcv_wscale = rcv_wscale;
+
+ ret = get_cookie_sock(sk, skb, req, dst);
+
+out: return ret;
+}
+
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 93980c3..ad39bd1 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -520,6 +520,20 @@ done:
return err;
}
+static inline void syn_flood_warning(struct sk_buff *skb)
+{
+#ifdef CONFIG_SYN_COOKIES
+ if (sysctl_tcp_syncookies)
+ printk(KERN_INFO
+ "TCPv6: Possible SYN flooding on port %d. "
+ "Sending cookies.\n", ntohs(tcp_hdr(skb)->dest));
+ else
+#endif
+ printk(KERN_INFO
+ "TCPv6: Possible SYN flooding on port %d. "
+ "Dropping request.\n", ntohs(tcp_hdr(skb)->dest));
+}
+
static void tcp_v6_reqsk_destructor(struct request_sock *req)
{
if (inet6_rsk(req)->pktopts)
@@ -923,7 +937,7 @@ done_opts:
}
#endif
-static struct request_sock_ops tcp6_request_sock_ops __read_mostly = {
+struct request_sock_ops tcp6_request_sock_ops __read_mostly = {
.family = AF_INET6,
.obj_size = sizeof(struct tcp6_request_sock),
.rtx_syn_ack = tcp_v6_send_synack,
@@ -1221,9 +1235,9 @@ static struct sock *tcp_v6_hnd_req(struct sock *sk,struct sk_buff *skb)
return NULL;
}
-#if 0 /*def CONFIG_SYN_COOKIES*/
+#ifdef CONFIG_SYN_COOKIES
if (!th->rst && !th->syn && th->ack)
- sk = cookie_v6_check(sk, skb, &(IPCB(skb)->opt));
+ sk = cookie_v6_check(sk, skb);
#endif
return sk;
}
@@ -1239,6 +1253,11 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
struct tcp_sock *tp = tcp_sk(sk);
struct request_sock *req = NULL;
__u32 isn = TCP_SKB_CB(skb)->when;
+#ifdef CONFIG_SYN_COOKIES
+ int want_cookie = 0;
+#else
+#define want_cookie 0
+#endif
if (skb->protocol == htons(ETH_P_IP))
return tcp_v4_conn_request(sk, skb);
@@ -1246,12 +1265,14 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
if (!ipv6_unicast_destination(skb))
goto drop;
- /*
- * There are no SYN attacks on IPv6, yet...
- */
if (inet_csk_reqsk_queue_is_full(sk) && !isn) {
if (net_ratelimit())
- printk(KERN_INFO "TCPv6: dropping request, synflood is possible\n");
+ syn_flood_warning(skb);
+#ifdef CONFIG_SYN_COOKIES
+ if (sysctl_tcp_syncookies)
+ want_cookie = 1;
+ else
+#endif
goto drop;
}
@@ -1272,29 +1293,39 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
tcp_parse_options(skb, &tmp_opt, 0);
+ if (want_cookie) {
+ tcp_clear_options(&tmp_opt);
+ tmp_opt.saw_tstamp = 0;
+ }
+
tmp_opt.tstamp_ok = tmp_opt.saw_tstamp;
tcp_openreq_init(req, &tmp_opt, skb);
treq = inet6_rsk(req);
ipv6_addr_copy(&treq->rmt_addr, &ipv6_hdr(skb)->saddr);
ipv6_addr_copy(&treq->loc_addr, &ipv6_hdr(skb)->daddr);
- TCP_ECN_create_request(req, tcp_hdr(skb));
treq->pktopts = NULL;
- if (ipv6_opt_accepted(sk, skb) ||
- np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||
- np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) {
- atomic_inc(&skb->users);
- treq->pktopts = skb;
- }
- treq->iif = sk->sk_bound_dev_if;
+ if (!want_cookie)
+ TCP_ECN_create_request(req, tcp_hdr(skb));
+
+ if (want_cookie) {
+ isn = cookie_v6_init_sequence(sk, skb, &req->mss);
+ } else if (!isn) {
+ if (ipv6_opt_accepted(sk, skb) ||
+ np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||
+ np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) {
+ atomic_inc(&skb->users);
+ treq->pktopts = skb;
+ }
+ treq->iif = sk->sk_bound_dev_if;
- /* So that link locals have meaning */
- if (!sk->sk_bound_dev_if &&
- ipv6_addr_type(&treq->rmt_addr) & IPV6_ADDR_LINKLOCAL)
- treq->iif = inet6_iif(skb);
+ /* So that link locals have meaning */
+ if (!sk->sk_bound_dev_if &&
+ ipv6_addr_type(&treq->rmt_addr) & IPV6_ADDR_LINKLOCAL)
+ treq->iif = inet6_iif(skb);
- if (isn == 0)
isn = tcp_v6_init_sequence(skb);
+ }
tcp_rsk(req)->snt_isn = isn;
@@ -1303,8 +1334,10 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
if (tcp_v6_send_synack(sk, req, NULL))
goto drop;
- inet6_csk_reqsk_queue_hash_add(sk, req, TCP_TIMEOUT_INIT);
- return 0;
+ if (!want_cookie) {
+ inet6_csk_reqsk_queue_hash_add(sk, req, TCP_TIMEOUT_INIT);
+ return 0;
+ }
drop:
if (req)
--
1.5.3.4
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox