<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/sis, branch releng/8.0</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/</title>
<updated>2009-06-26T11:45:06+00:00</updated>
<author>
<name>Robert Watson</name>
<email>rwatson@FreeBSD.org</email>
</author>
<published>2009-06-26T11:45:06+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=eb956cd041f956275522092d6ba66671356ff84f'/>
<id>eb956cd041f956275522092d6ba66671356ff84f</id>
<content type='text'>
IF_ADDR_UNLOCK() across network device drivers when accessing the
per-interface multicast address list, if_multiaddrs.  This will
allow us to change the locking strategy without affecting our driver
programming interface or binary interface.

For two wireless drivers, remove unnecessary locking, since they
don't actually access the multicast address list.

Approved by:	re (kib)
MFC after:	6 weeks
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
IF_ADDR_UNLOCK() across network device drivers when accessing the
per-interface multicast address list, if_multiaddrs.  This will
allow us to change the locking strategy without affecting our driver
programming interface or binary interface.

For two wireless drivers, remove unnecessary locking, since they
don't actually access the multicast address list.

Approved by:	re (kib)
MFC after:	6 weeks
</pre>
</div>
</content>
</entry>
<entry>
<title>When user_frac in the polling subsystem is low it is going to busy the</title>
<updated>2009-05-30T15:14:44+00:00</updated>
<author>
<name>Attilio Rao</name>
<email>attilio@FreeBSD.org</email>
</author>
<published>2009-05-30T15:14:44+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=1abcdbd127e95ffe08399ec75a7001edd1ca2f5f'/>
<id>1abcdbd127e95ffe08399ec75a7001edd1ca2f5f</id>
<content type='text'>
CPU for too long period than necessary.  Additively, interfaces are kept
polled (in the tick) even if no more packets are available.
In order to avoid such situations a new generic mechanism can be
implemented in proactive way, keeping track of the time spent on any
packet and fragmenting the time for any tick, stopping the processing
as soon as possible.

In order to implement such mechanism, the polling handler needs to
change, returning the number of packets processed.
While the intended logic is not part of this patch, the polling KPI is
broken by this commit, adding an int return value and the new flag
IFCAP_POLLING_NOCOUNT (which will signal that the return value is
meaningless for the installed handler and checking should be skipped).

Bump __FreeBSD_version in order to signal such situation.

Reviewed by:	emaste
Sponsored by:	Sandvine Incorporated
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CPU for too long period than necessary.  Additively, interfaces are kept
polled (in the tick) even if no more packets are available.
In order to avoid such situations a new generic mechanism can be
implemented in proactive way, keeping track of the time spent on any
packet and fragmenting the time for any tick, stopping the processing
as soon as possible.

In order to implement such mechanism, the polling handler needs to
change, returning the number of packets processed.
While the intended logic is not part of this patch, the polling KPI is
broken by this commit, adding an int return value and the new flag
IFCAP_POLLING_NOCOUNT (which will signal that the return value is
meaningless for the installed handler and checking should be skipped).

Bump __FreeBSD_version in order to signal such situation.

Reviewed by:	emaste
Sponsored by:	Sandvine Incorporated
</pre>
</div>
</content>
</entry>
<entry>
<title>Receving VLAN oversized frames raise SIS_ISR_RX_ERR interrupt, so</title>
<updated>2009-02-13T02:08:20+00:00</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2009-02-13T02:08:20+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=53414a48f88d2e3626463dda1589ed19a1e5f246'/>
<id>53414a48f88d2e3626463dda1589ed19a1e5f246</id>
<content type='text'>
make sis_rxeof() handle that too. Previously it used to receive the
frame and reset controller.

PR:	kern/131414
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
make sis_rxeof() handle that too. Previously it used to receive the
frame and reset controller.

PR:	kern/131414
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix shutdown prototypes.</title>
<updated>2009-02-10T23:17:20+00:00</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2009-02-10T23:17:20+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=e436c382385c6239e8229c4fbc70df5665cec49d'/>
<id>e436c382385c6239e8229c4fbc70df5665cec49d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a long standing VLAN tagged frame handling bug.</title>
<updated>2008-12-09T04:30:47+00:00</updated>
<author>
<name>Pyun YongHyeon</name>
<email>yongari@FreeBSD.org</email>
</author>
<published>2008-12-09T04:30:47+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=92483efaab808552e3a7e14715c5701745d0fec3'/>
<id>92483efaab808552e3a7e14715c5701745d0fec3</id>
<content type='text'>
When VLAN tagged frame is received the hardware sets 'LONG' bit of
Rx status word. It is always set when the size of received frame
exceeded 1518 bytes, including CRC. This VLAN tagged frame clears
'OK' bit of Rx status word such that driver should not rely on 'OK'
bit of Rx status word to pass the VLAN tagged frame to upper stack.

To fix the bug, don't use SIS_CMDSTS_PKT_OK for Rx error check and
introduce SIS_RXSTAT_ERROR macro that checks Rx errors. If we are
configured to accept VLAN tagged frames and the received frame size
is less than or equal to maximum allowed length of VLAN tagged
frame, clear 'LONG' bit of Rx status word before checking Rx
errors.

Reported by:	Vladimir Ermako	&lt; samflanker &lt;&gt; gmail DOT com &gt;
Tested by:	Vladimir Ermako	&lt; samflanker &lt;&gt; gmail DOT com &gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When VLAN tagged frame is received the hardware sets 'LONG' bit of
Rx status word. It is always set when the size of received frame
exceeded 1518 bytes, including CRC. This VLAN tagged frame clears
'OK' bit of Rx status word such that driver should not rely on 'OK'
bit of Rx status word to pass the VLAN tagged frame to upper stack.

To fix the bug, don't use SIS_CMDSTS_PKT_OK for Rx error check and
introduce SIS_RXSTAT_ERROR macro that checks Rx errors. If we are
configured to accept VLAN tagged frames and the received frame size
is less than or equal to maximum allowed length of VLAN tagged
frame, clear 'LONG' bit of Rx status word before checking Rx
errors.

Reported by:	Vladimir Ermako	&lt; samflanker &lt;&gt; gmail DOT com &gt;
Tested by:	Vladimir Ermako	&lt; samflanker &lt;&gt; gmail DOT com &gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>There actually were bugs in the original handling that I missed last</title>
<updated>2008-08-23T15:34:31+00:00</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2008-08-23T15:34:31+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3106346290de7e66d8174a3cd9ee06d34e1f6668'/>
<id>3106346290de7e66d8174a3cd9ee06d34e1f6668</id>
<content type='text'>
night.

Free the children after each pci bus that is searched.  Otherwise we
leak them.  With free in the new place, we also have to free children
before going to done when we find the device we're looking for.

Also, if we can't get the children of a device, just ignore that bus.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
night.

Free the children after each pci bus that is searched.  Otherwise we
leak them.  With free in the new place, we also have to free children
before going to done when we find the device we're looking for.

Also, if we can't get the children of a device, just ignore that bus.
</pre>
</div>
</content>
</entry>
<entry>
<title>Actually revert last...  Upon closer inspection the code works in the</title>
<updated>2008-08-23T07:43:03+00:00</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2008-08-23T07:43:03+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=83bda63e3ef5f9a786351590a521c49b0f0f9558'/>
<id>83bda63e3ef5f9a786351590a521c49b0f0f9558</id>
<content type='text'>
face of errors already...  A bit unorthodox, but none-the-less valid.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
face of errors already...  A bit unorthodox, but none-the-less valid.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle errors in device_get_children gracefully.</title>
<updated>2008-08-23T07:41:21+00:00</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2008-08-23T07:41:21+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b52943f0262fdac02cbd1584d8609f28f4441096'/>
<id>b52943f0262fdac02cbd1584d8609f28f4441096</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move sis to sys/dev/sis for consistency.</title>
<updated>2008-08-10T10:00:14+00:00</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2008-08-10T10:00:14+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d2155f2f19c8c66ea4e69d34df26d042fa61dc7b'/>
<id>d2155f2f19c8c66ea4e69d34df26d042fa61dc7b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
