Skip site navigation (1)Skip section navigation (2)
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>