jamon, never said thanks for this -- so, as usual, thanks -- very much appreciate your expertise.  <br><br>matt<br><br><div class="gmail_quote">On Sat, Jul 3, 2010 at 1:45 PM, Jamon Camisso <span dir="ltr"><<a href="mailto:jamon.camisso-H217xnMUJC0sA/PxXw9srA@public.gmane.org">jamon.camisso-H217xnMUJC0sA/PxXw9srA@public.gmane.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div class="h5">On 07/03/2010 12:53 PM, Matt Price wrote:<br>
> hi folks,<br>
><br>
> so, i have a faulty third-party wireless driver from realtek that causes<br>
> kernel panics on my ubuntu lucid machine.  The crash can be triggered<br>
> manually by running iwpriv -a as root; when running as a normal user, it<br>
> fails to trigger the crash. I include the output in my latest comment on the<br>
> bug report, here:<br>
> <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/585938/comments/18" target="_blank">https://bugs.launchpad.net/ubuntu/+source/linux/+bug/585938/comments/18</a> ;<br>
> it's pretty simple though really:<br>
><br>
> lo no private ioctls.<br>
> eth0 no private ioctls.<br>
> wlan0 Available read-only private ioctl :<br>
> wlan0 firm_ver:63<br>
> Kernel Panic [etc...]<br>
><br>
> here's my question:  how do i figure out what iwpriv is actually doing to<br>
> trigger this issue -- and is there anything i can do to stop this from<br>
> happening at othertimes?<br>
<br>
</div></div>strace is a start, you can see various calls that a given binary makes<br>
and start to narrow down the cause of the panic. Here's an excerpt from<br>
"strace iwlist wlan0 scan":<br>
<br>
ioctl(3, SIOCGIWRANGE, 0x7fff60bb8230)  = 0<br>
ioctl(3, SIOCSIWSCAN, 0x7fff60bb8840)   = 0<br>
select(0, [], NULL, NULL, {0, 250000})  = 0 (Timeout)<br>
brk(0)                                  = 0x1c5f000<br>
brk(0x1c81000)                          = 0x1c81000<br>
<snip><br>
select(0, [], NULL, NULL, {0, 100000})  = 0 (Timeout)<br>
ioctl(3, SIOCGIWSCAN, 0x7fff60bb8840)   = -1 E2BIG (Argument list too long)<br>
ioctl(3, SIOCGIWSCAN, 0x7fff60bb8840)   = 0<br>
<br>
Then there a bunch of write calls that spit out the list of wireless<br>
access points in my vicinity.<br>
<br>
So you can see that iwlist is calling ioctl, which, via the SIOCGIWSCAN<br>
event, asks the wireless driver to return its list of wireless signals.<br>
I believe that each driver has its own implementation of calls that are<br>
made for SIOCGIWSCAN events depending on the wireless firmware/hardware.<br>
<font color="#888888"><br>
Jamon<br>
</font><div><div></div><div class="h5">--<br>
The Toronto Linux Users Group.      Meetings: <a href="http://gtalug.org/" target="_blank">http://gtalug.org/</a><br>
TLUG requests: Linux topics, No HTML, wrap text below 80 columns<br>
How to UNSUBSCRIBE: <a href="http://gtalug.org/wiki/Mailing_lists" target="_blank">http://gtalug.org/wiki/Mailing_lists</a><br>
</div></div></blockquote></div><br>