Hans Petter Selasky wrote:
On Monday 30 April 2007 18:41, Valery V.Chikalov wrote:
Hans Petter Selasky wrote:
On Monday 30 April 2007 14:34, Valery V.Chikalov wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Kevin Lo пишет:
Valery V.Chikalov wrote:
Hans Petter Selasky wrote:
On Sunday 29 April 2007 15:02, Valery V.Chikalov wrote:
Kevin Lo wrote:
Valery V.Chikalov wrote:
The following reply was made to PR usb/107642; it has been noted
by GNATS.
From: "Valery V.Chikalov" <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED], [EMAIL PROTECTED]
Cc:
Subject: Re: usb/107642: [patch]Ralink Technology
RT2501USB/RT2601USB chipset driver
Date: Sun, 22 Apr 2007 11:32:18 +0300
This is a multi-part message in MIME format.
--------------030900090303000507070905
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
if_rum(4) for 7.0-CURRENT
replaced amrr_* functions by "standard" ones already existed in
net80211/ieee80211_amrr.c
Hi Valery,
I guess you wasn't aware that I've already ported rum(4) to
FreeBSD. The patch is available at:
http://people.freebsd.org/~kevlo/patch-rum Maybe you can test my
patch? Thanks.
Kevin
Hi, Kevin,
Your driver not working for me. Fortunately, the errors that I see
exactly the same which i fight when I made my driver.
$ uname -a
FreeBSD tiger.novakom.dp.ua 7.0-CURRENT FreeBSD 7.0-CURRENT #6: Sun
Apr 29 13:58:48 EEST 2007
[EMAIL PROTECTED]:/usr/obj/usr/src/sys/TIGER64 amd64
$ sysctl kern.osreldate
kern.osreldate: 700037
cvsup'ed 29.04.2007
kernel with:
makeoptions DEBUG=-g
options KDB
options DDB
options INVARIANTS
options INVARIANT_SUPPORT
options WITNESS
At first, when I make kldload if_rum, I get kernel panic.
But I cant get saved core, as ddb just hangs during "call doadump"
I have a solution for all of this locking stuff!
So I add
#define RUM_LOCK(sc) do { ((sc) = (sc)); mtx_lock(&Giant); }
while (0)
#define RUM_UNLOCK(sc) mtx_unlock(&Giant)
in if_rumvar.h
I spend a lot of time in attempts get rid of Giant ant always got
only panics.
You _cannot_ do that with the old USB stack, because you must lock
Giant before calling into the usbxxx functions. Then in the USB
callback, Giant is locked, and then you cannot lock RUM_LOCK()! That
means you will most likely end up with a deadlock pretty soon, if you
see that.
Thanks, for explanations. I suspected that thing are like that, and I
have tried make porting by analogue with other drivers which I can
find in dev/usb, but I was not can find the description of doing
"right way" locking before.
Firstly, thanks for taking the time to test my patch.
I think your issue is related to watchdog timers. The revised patch is
at http://people.freebsd.org/~kevlo/patch-rum
Besides, I don't get a panic during high load when getting a file about
400MB via ftp.
Sorry, but the error that I see the same, just after inserting dongle,
or if it was inserted before - after kldload if_rum:
panic: sleeping without a lock
the top of stack:
at usbd_transfer +0x1fe
....
rum_ioctl
And I cant get saved kernel coredump at the end.
I have not serial console configured so it was just subscribed by hand.
Of course I can reproduce it again and subscribe what you will ask.
I have SMP kernel and use AMD64 architecture, maybe this are the reasons
why we are getting different results.
Can you please, explain me in two words(or give a reference) why you are
dropping mtx_lock(&Giant). Yes I have seen the same in if_ural.c and as
i have wrote before unsuccessfully have tried repeat it in if_rum. I
know that current USB stack is not Giant free, and Hans noted that this
is impossible (if I understand him right). Maybe exists some tunable or
kernel option or another trick that allows drivers working without the
Giant under current USB stack, which I must use.
Thank you for your time and patience.
Sorry for my english.
Valery.
After that I get hangs,
which i resolved by modifying rum_ioctl:
I'm almost finished converting "if_rum.c()" to the new USB stack.
In some hours I will update it with support for "if_rum".
If you can test that and forget about the old USB stack, I will be
very happy :-)
I will do it with pleasure. I was almost ready to do it (converting to
new USB stack) by myself, but I was stopped by the fact that I cant
make it compiled under CURRENT. I have seen your mail that your are
working on this. Is new the USB stack ready for CURRENT now?
Valery.
--HPS
http://www.turbocat.net/~hselasky/usb4bsd
Kevin
Hi,
I have just imported "if_rum.c" to SVN and my P4 tree.
Just do a SVN update. Build a new USB package install that.
cp -r i4b/trunk/i4b/src/sys/modules/rum /usr/src/sys/modules/rum
make -C /usr/src/sys/modules/rum all install
Hope it works.
If you can read this message, then it definitely works :-)
Thank you, great work!
Only one issue:
during kernel load, and later after kldload if_rum I got a bunch of
messages
usbd_fill_iface_data: invalid wMaxPacketSize=0x0000, addr=125!
usbd_fill_iface_data: invalid wMaxPacketSize=0x0000, addr=125!
usbd_fill_iface_data: invalid wMaxPacketSize=0x0000, addr=125!
usbd_fill_iface_data: invalid wMaxPacketSize=0x0000, addr=125!
Ok. Do you have USB Bluetooth devices ?
--HPS
Yes.
tiger# usbdevs
addr 127: UHCI root hub, Intel
addr 127: UHCI root hub, Intel
addr 127: UHCI root hub, Intel
addr 127: UHCI root hub, Intel
addr 124: 802.11 bg WLAN, Ralink
addr 125: TrueMobile 350 Bluetooth USB Adapter, Dell
addr 126: product 0xa005, Dell
addr 125: TrueMobile 350 Bluetooth USB Adapter, Dell
addr 127: EHCI root hub, Intel
addr 126: product 0xa005, Dell
addr 125: TrueMobile 350 Bluetooth USB Adapter, Dell
addr 124: 802.11 bg WLAN, Ralink
of course I have only /one/ USB Adapter, not three.
Valery.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"