Date: Wed, 28 Dec 2011 10:34:58 -0800 From: Adrian Chadd <adrian@freebsd.org> To: Stefan Bethke <stb@lassitu.de> Cc: "freebsd-embedded@freebsd.org" <freebsd-embedded@freebsd.org> Subject: Re: Updated switch/glue patch? Message-ID: <CAJ-VmomkCLARagMXUmmJ2O8AQsiKwOEvWMLmwUnK=c47yDJvyw@mail.gmail.com> In-Reply-To: <2135AD2B-76D4-4B3D-A009-8F3BEC836051@lassitu.de> References: <CAJ-Vmon8%2BOXQ4g752zZEB-O0BR0sFWO0QUvw--xp2jsBDkx6tQ@mail.gmail.com> <0F6CC18F-6973-42A2-AC03-F01BF59458AE@lassitu.de> <CAJ-Vmo=Y8pp4iFnw%2B1hcPae6QXFboz=a7puwgC1kVSZ3JwMgPQ@mail.gmail.com> <1100F70E-9DA9-4163-AC9A-423ECE5AA9A3@lassitu.de> <CAJ-VmonrnJ7cC6u2LsL9AGusz_%2BkSwY62Rr1__sg5U_NynJ1SQ@mail.gmail.com> <CAJ-Vmo=WSN1oLM=B2HqSHrWyOaOD9BSwwu8=1Wys0CLRJ_N-TA@mail.gmail.com> <C637C171-A1A2-4296-84FA-6DE97137DC42@lassitu.de> <CAJ-Vmon2boy7OCh_4O0MeCi0yCdZu0OYb5dxHCEK=-%2B46zBGtg@mail.gmail.com> <CAJ-Vmoku5eLEYi5_DXVxK=0=4Ewn2aGepv3YUw4ApuVh_7y2%2Bw@mail.gmail.com> <CAJ-VmonvpnaS1rAO%2BsDRh1E5WfsrZTYE297Kc96prhfKjrM89Q@mail.gmail.com> <CAJ-VmokQxQs2DUKL=ONyxnnS7Q28ytmwZJ_thqvc4SvMkmS=cQ@mail.gmail.com> <18CABB46-9B9A-41CB-8742-6723C5FF4D67@lassitu.de> <C0BF20FD-E30F-4E9C-A0FE-500BE4807B99@bsdimp.com> <CAJ-VmokgiQCEG4et3X=3o_MuCMkO9MqkKqa-fjdpEqQNucn=Lw@mail.gmail.com> <2CBD8651-E132-49DC-A082-37A8F5C626EA@bsdimp.com> <AFE755D6-E462-40B4-A97B-9261303B3A4F@lassitu.de> <CAJ-VmonmMASxJZBAd2doX4eV6s5TF-3kCB0pLSMrWM8r0UsCmg@mail.gmail.com> <FC8A0B08-5292-44CC-AEC0-08BF170FCEA4@lassitu.de> <267FB3D6-830E-4A2F-8C1C-A96873EDCD31@lassitu.de> <EC4D4397-FA60-4CB1-8635-48988215E19A@lassitu.de> <CAJ-VmomZeHEyue4eaNGm%2Bw67uDBsOH_2bqocXjBGxyxHXStZ_A@mail.gmail.com> <12538AED-175C-4B1E-BF05-6FD05D14CE70@lassitu.de> <CAJ-Vmonu_HyhEnS=3aj7X41-LPWcihPA6Wa6jgV3cn7im2N3Kg@mail.gmail.com> <2135AD2B-76D4-4B3D-A009-8F3BEC836051@lassitu.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On 28 December 2011 05:52, Stefan Bethke <stb@lassitu.de> wrote: > Implement a number of suggestions by Adrian: > * add mutex to callout > * add locking macros > * rename _lockheld to _locked > * bring debugging under DEBUG, incl. sysctls > * move i2c select retry to its own function > * mtx_sleep when retrying the select > * only reset bus on probe > * do not DELAY on phy access retries > * count phy access retries (under DEBUG) > > http://gitorious.org/~stb/freebsd/stb-adrianchadd-freebsd-work (branch work/ath) > http://www.lassitu.de/freebsd/etherswitch-adrian.patch (patch against Adrians gitorious repo as of now) > http://www.lassitu.de/freebsd/etherswitch.tbz (all files) The patch didn't compile - you were missing softc *sc pointers in smi_read_locked and smi_write_locked. Then when I added it: iicbb0: <I2C bit-banging driver> on gpioiic0 iicbb0: udelay=5 microseconds iicbus0: <Philips I2C bus> on iicbb0 master-only iic0: <I2C generic I/O> on iicbus0 panic: mutex (null) not owned at /home/adrian/work/freebsd/git/adrianchadd-freebsd-work/adrianchadd-freebsd-work/sys/dev/etherswitch/rtl8366rb.c:365 KDB: enter: panic .. and I bet it's because the path through rtl8366rb_probe() calls smi_read_locked() without things being locked. Which it can't be, there's no softc yet. :) So perhaps you need an smi_read() which doesn't have a lock, and use that just for the probe path. Also, remember to use braces ( ) around fields in a macro. :) Adrian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmomkCLARagMXUmmJ2O8AQsiKwOEvWMLmwUnK=c47yDJvyw>