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,

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.

Tested, it works like a charm. Thanks :-)
> 
> --HPS
> 
> http://www.turbocat.net/~hselasky/usb4bsd

        Kevin

_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to