Re: [GIT]: Networking

Previous thread: Waking up from suspend regression by Michael Brennan on Tuesday, August 5, 2008 - 6:25 pm. (5 messages)

Next thread: [PATCH] Define a macro for subsys_initcall_sync() -> module_init(). by Robert P. J. Day on Tuesday, August 5, 2008 - 7:19 pm. (1 message)
From: David Miller
Date: Tuesday, August 5, 2008 - 7:00 pm

Here are the pending networking bits.

There was going to be the addition of the ath9k wireless driver but
there was some fallout that is being worked on right now (linux/list.h
changes needed lkml review, ath9k driver triggered some gcc aborts,
all kinds of fun stuff :-) so hopefully it will make it in the next
pass.  I tried to wait an extra day for it to be resolved, but that
was optimistic.

Highlights:

1) Intel driver guys triggered an OOPS when setting MTU during
   a busy transmit stream, which turned out to be a qdisc locking
   error.

   Fix the bug, and in the next commit add some assertions to
   qdisc_root_lock() to make sure it is only used in contexts where
   it is safe (basically, it can only be used when RTNL is held)

2) Neighbour table procfs output can miss entries, fix from
   Chris Larson.

3) When traffic classifier actions in the packet scheduler return
   certain status values, this can end up corrupting root level
   qdisc queue lengths and cause other weirdness.  Based upon some
   collaboration between Patrick McHardy, Jarek Poplawski, and
   myself Jarek composed a patch which uses flag bits (which
   get masked out before anything outside the qdisc layer can see
   them) to indicate exactly which actions should be performed
   on qdiscs leading up to the root.

4) Lennert Buytenhek did some really nice analysis on a network
   device that cannot do TSO offloading in hardware.  He checked
   out what happens if you enable the software TSO mechanism fallback
   we have in the kernel, and it improves CPU utilization tremendously.

   It is safe to do this as long as the device in question can
   support scatter-gather.

   Herbert and I are discussing a way to do this even more efficiently
   with some help from the device (currently the code has to allocate
   extra sk_buff objects as we split up the TSO frame, and then do
   a bunch of extra page ref counting, when all we need is some headers
   and some way to say where the data ...
From: Linus Torvalds
Date: Tuesday, August 5, 2008 - 7:57 pm

Talking about wireless driver updates - has anybody looked at the RaLink 
wireless driver?  It's in the newer EeePC's (901 and 1000), and it 
actually has a driver from the company which the comments make clear is 
GPLv2 too, no apparent oddness or anything:

	http://www.ralinktech.com.tw/data/drivers/2008_0708_RT2860_Linux_STA_v1.7.0.0.tar.bz2

which admittedly apparently has some trivial problems (with a trivial 
patch as seen at

	http://fedoraforum.org/forum/showthread.php?t=195429

I'd love to have that one working, since I have the hardware, and it's 
actually reasonable (much more so than the original EeePC, in fact). What 
channels should I go through? Is anybody working on integrating it 
already?

(Ivo van Doorn added to Cc, since he seems the go-to guy for the rt2x00 
driver in the tree, and may have some input).

		Linus
--

From: Marcel Holtmann
Date: Tuesday, August 5, 2008 - 10:59 pm

I looked at the driver and got it working. However my 901 seems to  
have an issue with the antennas. I can do scans, but associating with  
an access point or even thinking about transmit keeps failing. Even  
with external antennas this still doesn't work. So either my EeePC is  
broken or it needs some ACPI magic to enable it. Personally I think  
mine is broken since the PCIe hotplug stuff works for the wireless  
card and that seems to be their way of doing the rfkill.

The driver itself is painful. It is full of ifdefs and some crazy  
build magic. The integrated (to some degree optional) WPA code is  
pretty ugly. It has also a full set of iwpriv commands to do all the  
settings etc. :(

Regards

Marcel

--

From: Linus Torvalds
Date: Tuesday, August 5, 2008 - 11:18 pm

Yeah, the rfkill literally makes the chip go away from the PCI lists, it 
seems. But your problems can certainly be somehow driver-related, I 
haven't actually _tested_ that thing at all, I got the machine just as the 

Well, it's also trying to support both 2.4.x and 2.6 etc. Yeah, that is 
horrid. At the same time, I can't say that the "rewrite it entirely" 
approach of the previous-gen cards has worked very well either, since that 
seems to have just perpetuated the problems. It would be great to try to 
educate them, but I'm not finding even an email address in the sources.

Oh well. I can't really complain, since just the fact that they bothered 
to even make sources available still makes them pretty responsible people, 
even if the sources are pretty dang ugly.

All the capitalization etc makes me think they are all old DOS and Windows 
programmers. UCHAR and USHORT indeed, along with CamelCase functions. 

I dunno. 

			Linus
--

From: Ivo van Doorn
Date: Wednesday, August 6, 2008 - 1:22 am

I've send a mail to Ralink with a request if they could step away from the
"port the windows driver to linux" idea and get the Linux driver "kernel-ready"
early on.
That won't solve the problem now, but hopefully it does mean the drivers for

Well it basically is the Windows driver ported to Linux. ;)

Ivo
--

From: John W. Linville
Date: Wednesday, August 6, 2008 - 6:15 am

The Ralink guys are being educated and AFAICT they are interested in
better participation.  Time will tell, of course.

In the meantime as Ivo indicated he is "on the case" -- I think we
will see something before too long.

John
-- 
John W. Linville
linville@tuxdriver.com
--

From: Ivo van Doorn
Date: Wednesday, August 6, 2008 - 7:35 am

For the interested, the rt2800pci and rt2800usb code which I am working on can
be found in the experimental branch of my repository:
http://git.kernel.org/?p=linux/kernel/git/ivd/rt2x00.git;a=shortlog;h=experimental
Because the code is incomplete it cannot be tested, but it gives at least an idea
on what is already done. ;)

Ivo
--

From: Ivo van Doorn
Date: Wednesday, August 6, 2008 - 1:21 am

Like the earlier rt2x00 drivers I am rewriting the driver as released by Ralink and
have put it in the rt2x00lib/mac80211 framework. Most of the code is currently done, and the
last part should be done this week. After that it is a matter of testing and comparing
register values with the Ralink driver for the last tweaks.

I doubt the driver will be ready/stable for 2.6.28, but it should be ready for 2.6.29.

Ivo


--

From: Rui Santos
Date: Friday, August 29, 2008 - 3:12 am

Hi Ivo,

I'm now a EeePc 901 owner. I'd also like to have wireless working on
this machine.
I'm available for any test you might want to undertake so, do not

-- 
Regards,
Rui Santos

--

From: Nick Kossifidis
Date: Sunday, August 31, 2008 - 12:58 pm

EeePC is working, the patch series i submitted adds support for RF2425
chip which is included on EeePCs as far as i know (i have tested it on
an EeePC 900 surf, i think EeePC 901 has the same card) ;-)

We have some performance issues with ath5k but we are working on it
you can try and lock on b rates for better performance (we miss some
RF calibration stuff and CCK rates seem to perform better).

Happy wardriving ;-)

-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick
--

From: Linus Torvalds
Date: Sunday, August 31, 2008 - 1:15 pm

I think the EeePC 900 has a ath5k chip, and the 901/1000 has some totally 
different RaLink chip afaik.

I think the design change came when moving from Celeron to Atom.

		Linus
--

From: Nick Kossifidis
Date: Monday, September 1, 2008 - 12:19 am

Hmm i missed that part, sorry for the spam...

01:00.0 Network controller: RaLink Unknown device 0781

-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick
--

Previous thread: Waking up from suspend regression by Michael Brennan on Tuesday, August 5, 2008 - 6:25 pm. (5 messages)

Next thread: [PATCH] Define a macro for subsys_initcall_sync() -> module_init(). by Robert P. J. Day on Tuesday, August 5, 2008 - 7:19 pm. (1 message)