Revision
4189 -
Directory Listing
-
[select for diffs]
Modified
Sat Oct 1 02:29:26 2011 UTC
(12 years, 8 months ago)
by
laffer1
Diff to
previous 4188
,
to
selected 2715
TX mbuf parser for VLAN is still required to enable TX checksum offloading if VLAN hardware tagging is disabled.
Obtained from: FreeBSD cvs revison 1.1.2.11
Revision
4175 -
Directory Listing
-
[select for diffs]
Modified
Fri Sep 30 03:02:06 2011 UTC
(12 years, 8 months ago)
by
laffer1
Diff to
previous 4174
,
to
selected 2715
Disable hibernation. This was causing alc(4) to hibernate when the cable was unplugged and then requiring down/up the interface or at least unplug and plugin the cable several times.
Revision
4050 -
Directory Listing
-
[select for diffs]
Modified
Sat Jul 23 21:06:15 2011 UTC
(12 years, 10 months ago)
by
laffer1
Diff to
previous 4049
,
to
selected 2715
td_osd is at the end of struct thread to avoid breaking the ABI
as a side effect it is outside of the td_startzero-td_endzero range,
requiring it to be separately zeroed
Revision
4026 -
Directory Listing
-
[select for diffs]
Modified
Wed Jul 13 01:02:44 2011 UTC
(12 years, 11 months ago)
by
laffer1
Diff to
previous 4025
,
to
selected 2715
Introduce apple part map and vtoc part map for sparc.
For now, we're just going to use the freebsd-* names for partitions but this will change in the future.
Revision
4013 -
Directory Listing
-
[select for diffs]
Modified
Sun Jul 10 17:01:03 2011 UTC
(12 years, 11 months ago)
by
laffer1
Diff to
previous 4002
,
to
selected 2715
Introduce kdb_enter_why as an alternative to kdb_enter. It allows you to specify why you're going into the debugger so scripts can be selected.
FreeBSD 8 has this functionality as kdb_enter. I considered just merging it that way, but it would break binary compatibility with freebsd kernel modules which I don't want to do yet. (think nvidia graphics driver)
Revision
3990 -
Directory Listing
-
[select for diffs]
Modified
Wed Jun 22 23:56:22 2011 UTC
(12 years, 11 months ago)
by
laffer1
Diff to
previous 3989
,
to
selected 2715
some apps are trying to use LINUX_FUTEX_WAIT_BITSET and LINUX_FUTEX_WAIT_REQUEUE_PI which are not supported by 2.6.16 kernels.. only 2.6.26+.
Log it and throw a no-op if these are not defined and REALTIME clock is requested.
Revision
3965 -
Directory Listing
-
[select for diffs]
Modified
Thu Jun 9 12:51:00 2011 UTC
(13 years ago)
by
laffer1
Diff to
previous 3959
,
to
selected 2715
IPFW has two flaws in its handling of IPv6 packets that arrive in
fragments. First, it will deny an IPv6 packet that arrives with
a fragmentation header which has an offset of zero, but no
further fragments. This type of packet is explicitly allowed in
RFC 2460:
In response to an IPv6 packet that is sent to an IPv4 destination
(i.e., a packet that undergoes translation from IPv6 to IPv4),
the originating IPv6 node may receive an ICMP Packet Too Big
message reporting a Next-Hop MTU less than 1280. In that
case, the IPv6 node is not required to reduce the size of
subsequent packets to less than 1280, but must include a
Fragment header in those packets so that the IPv6-to-IPv4
translating router can obtain a suitable Identification value
to use in resulting IPv4 fragments. Note that this means the
payload may have to be reduced to 1232 octets (1280 minus 40
for the IPv6 header and 8 for the Fragment header), and
smaller still if additional extension headers are used.
The second flaw is that the code allows IPv6 packets that arrive in
fragments to avoid transport-layer rules. For example, consider this
ruleset:
00001 deny tcp from 2607:f0b0:0:6:209:87:239:67 80 to 2404:138:4002:4000:205:1cff:fe11:beff dst-port 37822
65534 allow ip from any to any
65535 deny ip from any to any
Rule 1 will not be applied to the fragment with offset zero
because the MF bit is intentionally included in the offset
variable used in ipfw_chk, so the check to see if the transport
header is found in fragment zero will fail. Instead, the rule
will be skipped over, and the next rule which in this example is
an allow will accept the fragment. Where an administrator might
have expected the traffic to be blocked it will instead be
allowed through the firewall.
Attached is a revised patch fixing a third flaw. ipfw will reject
very small IPv6 fragments when it tries to pullup the transport
header. This relaxes the code to be consistent with the IPv4 path
where it only tries to pull up the transport header on fragments with
offset zero.
Reported to FreeBSD by Matthew Luckie , pr 145733.
Revision
3921 -
Directory Listing
-
[select for diffs]
Modified
Thu May 5 00:58:28 2011 UTC
(13 years, 1 month ago)
by
laffer1
Diff to
previous 3914
,
to
selected 2715
Fix a 16 year old bug in the sorting routine for non-contiguous netmasks.
For masks of identical length rn_lexobetter() did not stop on the
first non-equal byte. This leads rn_addroute() to not detecting
duplicate entries and thus we might create a very long list of masks
to check for each node.
This can have a huge impact on IPsec performance, where non-contiguous
masks are used for the flow lookup. In a setup with 1300 flows we
saw 400 duplicate masks and only a third of the expected throughput.
Obtained from: OpenBSD (revision 1.28 src/sys/net/radix.c)
Revision
3909 -
Directory Listing
-
[select for diffs]
Modified
Thu Apr 14 04:04:02 2011 UTC
(13 years, 2 months ago)
by
laffer1
Diff to
previous 3908
,
to
selected 2715
Handle the special ruleset 0 in devfs_ruleset_use(). An attempt set the
current ruleset to 0 with command "devfs ruleset 0" triggered a KASSERT
in devfs_ruleset_create().
Revision
3908 -
Directory Listing
-
[select for diffs]
Modified
Fri Apr 1 02:09:23 2011 UTC
(13 years, 2 months ago)
by
laffer1
Diff to
previous 3904
,
to
selected 2715
Clamp the initial advertised receive window when responding to a SYN/ACK
to the maximum allowed window. Growing the window too large would cause
an underflow in the calculations in tcp_output() to decide if a window
update should be sent which would prevent the persist timer from being
started if data was pending and the other end of the connection advertised
an initial window size of 0.
Obtained from: FreeBSD
Revision
3886 -
Directory Listing
-
[select for diffs]
Modified
Sun Mar 13 21:43:59 2011 UTC
(13 years, 3 months ago)
by
laffer1
Diff to
previous 3845
,
to
selected 2715
Bring in two large changes from FreeBSD 7.1:
* DRM/DRI update for direct rendering on X. This is a large update to support newer ATI and Intel graphics adapters with acceleration. This was original ported from Linux (it's not GPL)
* cdev per open file data.
Implement the per-open file data for the cdev.
The patch does not change the cdevsw KBI. Management of the data is
provided by the functions
int devfs_set_cdevpriv(void *priv, cdevpriv_dtr_t dtr);
int devfs_get_cdevpriv(void **datap);
void devfs_clear_cdevpriv(void);
All of the functions are supposed to be called from the cdevsw method
contexts.
- devfs_set_cdevpriv assigns the priv as private data for the file
descriptor which is used to initiate currently performed driver
operation. dtr is the function that will be called when either the
last refernce to the file goes away, the device is destroyed or
devfs_clear_cdevpriv is called.
- devfs_get_cdevpriv is the obvious accessor.
- devfs_clear_cdevpriv allows to clear the private data for the still
open file.
Implementation keeps the driver-supplied pointers in the struct
cdev_privdata, that is referenced both from the struct file and struct
cdev, and cannot outlive any of the referee.
Obtained from: FreeBSD
Revision
3791 -
Directory Listing
-
[select for diffs]
Modified
Sat Feb 19 18:36:55 2011 UTC
(13 years, 3 months ago)
by
laffer1
Diff to
previous 3788
,
to
selected 2715
Rewrite parts of the amdtemp(4) temp monitor for K8, K10, K11 AMD CPUs to take advantage of the sensors framework.
This is similar to coretemp(4)'s changes in MidnightBSD and to kate(4) in OpenBSD/DragonFly. However, kate(4) only handles K8 CPUs!
I don't have any K8 hardware to test on so if the sensor readings are off, I need someone to let me know.
Tested on an AMD Phenom 9600
Revision
3753 -
Directory Listing
-
[select for diffs]
Modified
Wed Feb 9 00:32:15 2011 UTC
(13 years, 4 months ago)
by
laffer1
Diff to
previous 3751
,
to
selected 2715
Bump MidnightBSD version. We've updated a lot of contrib software lately and the recent window scaling patch. (BIND, file, openssl, openssh, libarchive, unzip, cpio, ...)
Revision
3751 -
Directory Listing
-
[select for diffs]
Modified
Wed Feb 9 00:27:18 2011 UTC
(13 years, 4 months ago)
by
laffer1
Diff to
previous 3750
,
to
selected 2715
If the new window size ends up being the same as the old
size when it is scaled, then don't force a window update.
Obtained from: Patch by John Baldwin, FreeBSD 7-STABLE local patch
Revision
3737 -
Directory Listing
-
[select for diffs]
Modified
Mon Feb 7 00:17:46 2011 UTC
(13 years, 4 months ago)
by
laffer1
Diff to
previous 3736
,
to
selected 2715
Add a preliminary version of alc(4). This version does not support wake on lan and should not be suspend/resume. It's not connected to the build yet, but one can manually build the odule.
Revision
3623 -
Directory Listing
-
[select for diffs]
Modified
Sat Jan 22 19:55:16 2011 UTC
(13 years, 4 months ago)
by
laffer1
Diff to
previous 3612
,
to
selected 2715
Import it(4) and lm(4) for common Super I/O hardware sensors.
This is based on the 2007 Google Summer of Code project by Constantine A. Murenin and code from OpenBSD.
Revision
3598 -
Directory Listing
-
[select for diffs]
Modified
Tue Jan 4 14:23:53 2011 UTC
(13 years, 5 months ago)
by
laffer1
Diff to
previous 3595
,
to
selected 2715
Opteron rev E family of processor expose a bug where, in very rare
ocassions, memory barriers semantic is not honoured by the hardware
itself. As a result, some random breakage can happen in uninvestigable
ways (for further explanation see at the content of the commit itself).
As long as just a specific familly is bugged of an entire architecture
is broken, a complete fix-up is impratical without harming to some
extents the other correct cases.
Considering that (and considering the frequency of the bug exposure)
just print out a warning message if the affected machine is identified.
Pointed out by: Samy Al Bahra <sbahra at repnop dot org>
Obtained from: FreeBSD (revision 198868)
Revision
3595 -
Directory Listing
-
[select for diffs]
Modified
Mon Jan 3 05:43:27 2011 UTC
(13 years, 5 months ago)
by
laffer1
Diff to
previous 3594
,
to
selected 2715
Add support for the 8103E a hardware revision of the 8169.
Follow the lead of vendor's interrupt moderation mechanism.
It seems RTL8169/RTL8168/RTL810xE has a kind of interrupt
moderation mechanism but it is not documented at all. The magic
value dramatically reduced number of interrupts without noticeable
performance drops so apply it to all RTL8169/RTL8169 controllers.
Obtained from FreeBSD & Realtek FreeBSD driver.
Revision
3565 -
Directory Listing
-
[select for diffs]
Modified
Sat Nov 20 17:49:41 2010 UTC
(13 years, 6 months ago)
by
laffer1
Diff to
previous 3562
,
to
selected 2715
Several portions of the kernel and userland code related to UFS file
systems (and UFS2) cannot properly handle inode counts above 2^31 due
to use of int types. Based on a patch from FreeBSD, I've modified
our UFS2 implementation to handle unsigned values for inode counts
which should allow for file systems greater than 16TB.
newfs and growfs was also modified.
Revision
3562 -
Directory Listing
-
[select for diffs]
Modified
Tue Nov 16 14:21:22 2010 UTC
(13 years, 7 months ago)
by
laffer1
Diff to
previous 3554
,
to
selected 2715
Patch from Paul B Mahol:
Following patch fix panic on i386 for drivers using such functions.
Those two functions take 64-bit variable(s) for their arguments.
On i386 that takes additional 32-bit variable per argument.
This is required so that windrv_wrap() can correctly wrap function that
miniport driver calls with stdcall convention.
Similar explanation is provided in subr_ndis.c for other functions.
On amd64 we do not use these numbers.
Revision
3524 -
Directory Listing
-
[select for diffs]
Modified
Mon Sep 27 22:20:09 2010 UTC
(13 years, 8 months ago)
by
laffer1
Diff to
previous 3491
,
to
selected 2715
Conditionally define MAXCPU the same for all kernels regardless of SMP or !SMP.
On i386 and amd64 define MAXCPU to 32 since they exist now. Most kernel structures are resized based on this value.
Revision
3491 -
Directory Listing
-
[select for diffs]
Modified
Mon Sep 6 00:23:34 2010 UTC
(13 years, 9 months ago)
by
laffer1
Diff to
previous 3484
,
to
selected 2715
Move things along.. current is now 0.4-CURRENT. Change the man pages, osreldate and other tunables in the system accordingly. While we're here, update other bsd systems in our mdoc.local.
Revision
3478 -
Directory Listing
-
[select for diffs]
Modified
Tue Aug 31 13:08:08 2010 UTC
(13 years, 9 months ago)
by
laffer1
Diff to
previous 3457
,
to
selected 2715
Sync with FreeBSD 7-stable. Includes NetBSD style changes and 3 clause removal. Also exports mc146818_def_read and mc146818_def_write so the front end can make use of them.
Revision
3427 -
Directory Listing
-
[select for diffs]
Modified
Sat Jul 3 16:49:32 2010 UTC
(13 years, 11 months ago)
by
laffer1
Diff to
previous 3426
,
to
selected 2715
Refactor the linux_mmap_common function to take individual arguments similar to FreeBSD. This is easier to read and similar to other kernel interfaces. This also makes it easier to fix the mmap offsets greater than 32 bits. We can deal with a 64 bit file offset now. This is based on a patch to FreeBSD by Christian Zander @ NVIDIA
Revision
3426 -
Directory Listing
-
[select for diffs]
Modified
Sat Jul 3 16:43:27 2010 UTC
(13 years, 11 months ago)
by
laffer1
Diff to
previous 3425
,
to
selected 2715
Refactor the linux_mmap_common function to take individual arguments similar to FreeBSD. This is easier to read and similar to other kernel interfaces. This also makes it easier to fix the mmap offsets greater than 32 bits. We can deal with a 64 bit file offset now. This is based on a patch to FreeBSD by Christian Zander @ NVIDIA
Revision
3423 -
Directory Listing
-
[select for diffs]
Modified
Sat Jun 19 14:56:05 2010 UTC
(14 years ago)
by
laffer1
Diff to
previous 3406
,
to
selected 2715
Do not require pos parameter to be zero in MAP_ANONYMOUS mmap requests
in Linux emulation layer. Linux seems to only require that pos is
page-aligned, but otherwise ignores it. Default FreeBSD mmap parameter
checking is too strict to allow some Linux binaries to run. tsMuxeR is
one example of such a binary.
Obtained from: kan@FreeBSD
Revision
3372 -
Directory Listing
-
[select for diffs]
Modified
Thu Mar 18 00:12:58 2010 UTC
(14 years, 3 months ago)
by
laffer1
Diff to
previous 3368
,
to
selected 2715
bump the midnightbsd version to indicate the presense of updated hda audio, new tme zones and the cpu detection code. we need to do more with this cpu detection code. Note this also includes changes to linprocfs from freebsd 7-stable that might help with newer kernel emulation.
Revision
3368 -
Directory Listing
-
[select for diffs]
Modified
Wed Mar 17 23:40:25 2010 UTC
(14 years, 3 months ago)
by
laffer1
Diff to
previous 3365
,
to
selected 2715
Add support for several newer sound cards including the following ATI and realtek chipsets:
hdac0: <ATI SB600 High Definition Audio Controller> mem 0xfbbf4000-0xfbbf7fff ir
q 16 at device 20.2 on pci0
hdac0: HDA Driver Revision: 20091113_0138
hdac0: [ITHREAD]
hdac0: HDA Codec #0: Realtek ALC887
hdac1: <ATI RV730 High Definition Audio Controller> mem 0xfbcec000-0xfbceffff ir
q 19 at device 0.1 on pci1
hdac1: HDA Driver Revision: 20091113_0138
hdac1: [ITHREAD]
hdac1: HDA Codec #0: ATI R6xx HDMI
hdac2: <ATI RV730 High Definition Audio Controller> mem 0xfbdec000-0xfbdeffff ir
q 17 at device 0.1 on pci2
hdac2: HDA Driver Revision: 20091113_0138
hdac2: [ITHREAD]
hdac2: HDA Codec #0: ATI R6xx HDMI
pcm0: <HDA Realtek ALC887 PCM #0 Analog> at cad 0 nid 1 on hdac0
pcm1: <HDA Realtek ALC887 PCM #1 Analog> at cad 0 nid 1 on hdac0
pcm2: <HDA Realtek ALC887 PCM #2 Digital> at cad 0 nid 1 on hdac0
pcm3: <HDA Realtek ALC887 PCM #3 Digital> at cad 0 nid 1 on hdac0
pcm4: <HDA ATI R6xx HDMI PCM #0 HDMI> at cad 0 nid 1 on hdac1
pcm5: <HDA ATI R6xx HDMI PCM #0 HDMI> at cad 0 nid 1 on hdac2
Revision
3364 -
Directory Listing
-
[select for diffs]
Modified
Sat Mar 13 19:15:51 2010 UTC
(14 years, 3 months ago)
by
laffer1
Diff to
previous 3355
,
to
selected 2715
Update our cpu types and include a list of vendors of CPUs. This will be used with identcpu and kernel modules later to "detect" cpu vendors to enable/disable features.
Revision
3310 -
Directory Listing
-
[select for diffs]
Modified
Fri Mar 5 04:50:31 2010 UTC
(14 years, 3 months ago)
by
laffer1
Diff to
previous 3309
,
to
selected 2715
If we are unable to obtain a frequency list from either ACPI or the
static tables, then attempt to build a simple list containing just the high
and low frequencies if the hw.est.msr_info tunable is set to 1. By default
this is disabled.
Obtained from FreeBSD
Revision
3307 -
Directory Listing
-
[select for diffs]
Modified
Fri Mar 5 04:36:59 2010 UTC
(14 years, 3 months ago)
by
laffer1
Diff to
previous 3306
,
to
selected 2715
1.13: Use correct bitmask for checking CPU identities.
1.16: Add XXX comment about the table in general.
Increase time we wait for things to settle to 1 millisecond,
10 microseconds is too short.
Revision
3301 -
Directory Listing
-
[select for diffs]
Modified
Fri Mar 5 03:48:39 2010 UTC
(14 years, 3 months ago)
by
laffer1
Diff to
previous 3300
,
to
selected 2715
Probe CPUs after the PCI hierarchy on i386 and amd64. This allows
the cpufreq drivers to reliably use properties of PCI devices for quirks,
etc.
- For the legacy drivers, add CPU devices via an identify routine in the
CPU driver itself rather than in the legacy driver's attach routine.
- Add CPU devices after Host-PCI bridges in the acpi bus driver.
- Change the ichss(4) driver to use pci_find_bsf() to locate the ICH and
check its device ID rather than having a bogus PCI attachment that only
checked for the ID in probe and always failed. As a side effect, you
can now kldload ichss after boot.
- Fix the ichss(4) driver to use the correct device_t for the ICH (and not
for ichss0) when doing PCI config space operations to enable SpeedStep.
Revision
3277 -
Directory Listing
-
[select for diffs]
Modified
Sat Feb 6 06:49:38 2010 UTC
(14 years, 4 months ago)
by
laffer1
Diff to
previous 3240
,
to
selected 2715
Sync re(4) and rl(4) with FreeBSD 7-Stable from a few months ago.
The big difference here is that wake on lan support has been disabled since we don't support it.
re(4) has been tested on a pciE nic, testing pci will happen shortly and we need more testing on other parts including rl(4)s.
This adds several newer cards, plus a few old ones we missed.
Revision
3239 -
Directory Listing
-
[select for diffs]
Modified
Sun Jan 10 21:55:09 2010 UTC
(14 years, 5 months ago)
by
laffer1
Diff to
previous 3232
,
to
selected 2715
Enable options P1003_1B_SEMAPHORES # POSIX-style semaphores
This option is required by many modern applications including Firefox 3.5. We also need this to support libdispatch!
Enable on all three architectures.
Revision
3221 -
Directory Listing
-
[select for diffs]
Modified
Thu Jan 7 00:32:39 2010 UTC
(14 years, 5 months ago)
by
laffer1
Diff to
previous 3220
,
to
selected 2715
ZFS is a file-system originally developed by Sun Microsystems.
The ZFS Intent Log ("ZIL") is a mechanism that gathers together in memory
transactions of writes, and is flushed onto disk when synchronous
semantics is necessary. In the event of crash or power failure, the
log is examined and the uncommitted transaction would be replayed to
maintain the synchronous semantics.
When replaying setattr transaction, the replay code would set the
attributes with certain insecure defaults, when the logged
transaction did not touch these attributes.
A system crash or power fail would leave some file with mode set
to 07777. This could leak sensitive information or cause privilege
escalation.
Based on FreeBSD security advisory SA-10:03.zfs (freebsd 7.x)
Revision
3207 -
Directory Listing
-
[select for diffs]
Modified
Sun Dec 13 01:09:44 2009 UTC
(14 years, 6 months ago)
by
laffer1
Diff to
previous 3206
,
to
selected 2715
Add the fdclone KPI. fdclone was originally developed for FreeBSD7-CURRENT by Kostik Belousov and Peter Holm.
This was developed to allow drivers to clone on open(2). The cloned cdev is
not accessible for lookup through devfs and is destroyed automatically.
The implementation is based on version 9 of Kostik's patch. I've also included
a sample program in share/examples/kld/fdclone on use.
$MidnightBSD$ tagged in share/examples/kld
Revision
3199 -
Directory Listing
-
[select for diffs]
Modified
Sat Nov 28 22:44:36 2009 UTC
(14 years, 6 months ago)
by
laffer1
Diff to
previous 3185
,
to
selected 2715
Import OpenBSD's sysctl sensors framework. This is based on work by Constantine A. Murenin for the 2007 Google summer of code for FreeBSD.
Includes:
sample config file for sensord
rc scripts
documentation fixes and updates
sys/kern/kern_sensors.c
sys/sensors.h
This is compatible with OpenBSD 4.1 and 4.2 in terms of the userland bits.
Revision
3158 -
Directory Listing
-
[select for diffs]
Modified
Thu Nov 19 01:34:17 2009 UTC
(14 years, 6 months ago)
by
laffer1
Diff to
previous 3156
,
to
selected 2715
Experimental patch to get the nic to stop re-initializing so much on boot. This is caused when DHCP occurs for instance and causes problems with sendmail and other services on startup.
This requires extensive testing on re hardware
Revision
3156 -
Directory Listing
-
[select for diffs]
Modified
Sat Nov 7 01:41:53 2009 UTC
(14 years, 7 months ago)
by
laffer1
Diff to
previous 3128
,
to
selected 2715
soreceive() will send an ACK right away if data was drained from a TCP socket that advertized a 0 sized window. However, the receive window had to be exactly zero. Change the code to check the raw window value instead.
Revision
3020 -
Directory Listing
-
[select for diffs]
Modified
Wed Jun 10 15:34:13 2009 UTC
(15 years ago)
by
laffer1
Diff to
previous 3019
,
to
selected 2715
The SIOCSIFINFO_IN6 ioctl is missing a necessary permissions check.
Don't let everyone on the planet (with local access) change the properties on the ipv6 interfaces.
Revision
2996 -
Directory Listing
-
[select for diffs]
Modified
Sat Jun 6 03:50:38 2009 UTC
(15 years ago)
by
laffer1
Diff to
previous 2995
,
to
selected 2715
Add a workaround for the CYPRESS USB PATA chipset used for many usb drive enclosures (including the one on my desk). This fixes the SYNCHRONIZE CACHE errors people get with this device. I've noticed it under testing with ZFS.
Revision
2903 -
Directory Listing
-
[select for diffs]
Modified
Wed May 20 16:34:47 2009 UTC
(15 years ago)
by
laffer1
Diff to
previous 2902
,
to
selected 2715
Overhaul re(4).
o Increased number of Rx/Tx descriptors to 256 for 8169 GigEs
because it's hard to push the hardware to the limit with default
64 descriptors.
TSO requires large number of Tx descriptors to pass a full sized
TCP segment(65535 bytes IP packet) to hardware. Previously it
consumed 32 Tx descriptors, assuming MCLBYTES DMA segment size,
to send the TCP segment which means re(4) couldn't queue more
than two full sized IP packets.
For 8139C+ it still uses 64 Rx/Tx descriptors due to its hardware
limitations. With this changes there are (very) small waste of
memory for 8139C+ users but I don't think it would affect 8139C+
users for most cases.
o Various bus_dma(9) fixes.
- The hardware supports DAC so allow 64bit DMA operations.
- Removed BUS_DMA_ALLOC_NOW flag.
- Increased DMA segment size to 4096 from MCLBYTES because TSO
consumes too many descriptors with MCLBYTES DMA segment size.
- Tx/Rx side bus_dmamap_load_mbuf_sg(9) support. With these
changes the code is more readable than previous one and got a
(slightly) better performance as it doesn't need to pass/
decode arguments to/from callback function.
- Removed unnecessary callback function re_dmamap_desc() and
nuked rl_dmaload_arg structure which was used in the callback.
- Additional protection for DMA map load failure. In case of
failure reuse current map instead of returning a bogus DMA
map.
- Deferred DMA map unloading/sync operation for maximum
performance until we really need to load new DMA map. If we
happen to reuse current map(e.g. input error) there is no need
to sync/unload/load again.
- The number of allowable Tx DMA segments for a mbuf chains are
now 32 instead of magic nseg value. If the number of available
Tx descriptors are short enough to send highly fragmented mbuf
chains an optimized re_defrag() is called to collapse mbuf
chains which is supposed to be much faster than m_defrag(9).
re_defrag() was borrowed from ath(4).
- Separated Rx/Tx DMA tag from a common DMA tag such that Rx DMA
tag correctly uses DMA maps that were created with DMA alignment
restriction(8bytes alignments). Tx DMA tag does not have such
alignment limitation.
- Added additional sanity checks for DMA ring map load failure.
- Added additional spare Rx DMA map for graceful handling of Rx
DMA map load failure.
- Fixed misused bus_dmamap_sync(9) and added missing
bus_dmamap_sync(9) in re_encap()/re_txeof()/re_rxeof().
o Enabled TSO again as re(4) have reasonable number of Tx
descriptors.
o Don't touch DMA address of a Tx descriptor in re_txeof(). It's
not needed.
o Fix incorrect update of if_ierrors counter. For Rx buffer
shortage it should update if_qdrops as the buffer is reused.
o Added checks for unsupported H/W revisions and return ENXIO for
these hardwares. This is required to remove resource allocation
code in re_probe as other drivers do in device probe routine.
o Modified descriptor index manipulation macros as it's now possible
to have different number of descriptors for Rx/Tx.
o In re_start, to save a lock operation, use IFQ_DRV_IS_EMPTY before
trying to invoke IFQ_DRV_DEQUEUE. Also don't blindly call re_encap
since we already know the number of available Tx descriptors in
advance.
o Removed RL_TX_DESC_THLD which was used to reserve RL_TX_DESC_THLD
descriptors in Tx path. There is no such a limitation mentioned in
8139C+/8169/8110/8168/8101/8111 datasheet and it seems to work ok
without reserving RL_TX_DESC_THLD descriptors.
o Fix a comment for RL_GTXSTART. The register is 8bits register.
o Added comments for 8169/8139C+ hardware restrictions on descriptors.
o Removed forward declaration for "struct rl_softc", it's not needed.
o Added a new structure rl_txdesc for Tx descriptor managements and
a structure rl_rxdesc for Rx descriptor managements.
o Removed unused member variable rl_intlock in driver softc. There are
still several unused member variables which are supposed to be used
to access hardware statistics counters. But it seems that accessing
hardware counters were not implemented yet.
Obtained from: FreeBSD , RELENG_7 if_re.c 1.101, if_re.c 1.102, if_rlreg.h 1.70
Revision
2901 -
Directory Listing
-
[select for diffs]
Modified
Wed May 20 16:25:39 2009 UTC
(15 years ago)
by
laffer1
Diff to
previous 2899
,
to
selected 2715
By definition promiscuous mode should see all unicast frames as well
as multicast/broadcast frames. Previously re(4) ignored multicast
frames in promiscuous mode. The RTL8169 datasheet was not clear
how it handles multicast frames in promiscuous mode.
Obtained from: FreeBSD
Revision
2886 -
Directory Listing
-
[select for diffs]
Modified
Sat May 16 18:38:51 2009 UTC
(15 years, 1 month ago)
by
laffer1
Diff to
previous 2885
,
to
selected 2715
add CPUID bits to ident phenom processor
There are several new CPUIDs to recognize AMD Extended Features, ECX 07FFh for Phenom processor.
According to [1], they are:
Bit 0: LAHF/SAHF
Bit 1: CMP
Bit 2: SVM (Secure Virtual Mode)
Bit 3: APIC
Bit 4: MOV CR8
*Bit 5: Advanced Bit Manipulation (LZCNT)
*Bit 6: SSE4A (EXTRQ, INSERTQ, MOVNTSS, MOVNTSD)
*Bit 7: Misalign SSE
Bit 8: 3DNow! (PREFETCH и PREFTECHW)
*Bit 9: OS Visible Workaround
*Bit 10: Instruction Based Sampling
* - missing bits in amd64/identcpu.c
[1]http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/31116.pdf
Based on patch by pluknet for FreeBSD
Revision
2824 -
Directory Listing
-
[select for diffs]
Modified
Wed Apr 15 19:22:31 2009 UTC
(15 years, 2 months ago)
by
laffer1
Diff to
previous 2738
,
to
selected 2715
Correct the following defect in PF, originally reported to OpenBSD and later in our #midnightbsd chatroom:
Author : Rembrandt
Date : 2009-04-09
Affected Software: OpenBSD Kernel
Affected OS : OpenBSD 4.{3,4,5}, OpenBSD-current
Propably older versions are affected as well
Type : Denial of Service
OSVDB :
Milw0rm : 8406
CVE :
ISS X-Force: :
BID : 34482
Secunia : 34676
VUPEN ID :
Trying to fix it responsible and get in contact with the vendor:
-- OpenBSD --
Contacted 2009-04-09 15:35 GMT+1
Patch avaiable 2009-04-11 23:43 UTC
We received no response nor a notification about an upcoming patch by
the developers.
-- END --
OpenBSDs PF firewall in OpenBSD 4.3 up to OpenBSD-current is prone to a
remote Denial of Service during a null pointer dereference in relation with
special crafted IP datagrams. If the firewall handles such a packet the kernel
panics.
Steps to reproduce:
If you are behind a OpenBSD firewall this nmap scan should trigger the problem
and crash your firewall device:
nmap -sO $some_host_so_that_the_firewall_handles_the_packets
For more informations please do read the patch issued by OpenBSD.
Patches and Workaround:
Patches are provided for OpenBSD 4.3, 4.4, 4.5 (upcoming, release 1st of may)
and OpenBSD-current (via CVS only) and are avaiable at the errata website.
The developers provide hints for a workaround at their errata website too.
Kind regards,
Rembrandt
Revision
2736 -
Directory Listing
-
[select for diffs]
Modified
Sat Apr 4 15:15:07 2009 UTC
(15 years, 2 months ago)
by
laffer1
Diff to
previous 2728
,
to
selected 2715
Enable support for the Microsoft Hyper-V virtual machine system in Windows 2008 server, etc.
You may still need to set the media type for dhcp clients, but at least the system can now shutdown properly.
Revision
2715 -
Directory Listing
-
[selected]
Modified
Sun Mar 29 16:56:32 2009 UTC
(15 years, 2 months ago)
by
laffer1
Diff to
previous 2714
fix preprocessor checks, gcc4 fixes, etc
Revision
2698 -
Directory Listing
-
[select for diffs]
Modified
Sun Mar 29 03:00:26 2009 UTC
(15 years, 2 months ago)
by
laffer1
Diff to
previous 2656
,
to
selected 2715
Temporarily disable ahd, adaptec 79xx driver from lint testing until we get it working again. Currently it's a compile error and we need to test other parts of the system
Revision
2597 -
Directory Listing
-
[select for diffs]
Modified
Sun Mar 1 19:21:37 2009 UTC
(15 years, 3 months ago)
by
laffer1
Diff to
previous 2596
,
to
selected 2715
o Add stub support for some new futex operations,
so the annoying message is not printed.
o Don't warn about FUTEX_FD not being implemented
and return ENOSYS instead of 0 (eg. success).
o Clear FUTEX_PRIVATE_FLAG as we actually implement
only private futexes so there is no reason to
return ENOSYS when app asks for a private futex.
We don't reject shared futexes because they worked
just fine with our implementation so far.
Obtained from freebsd, rdivacky
Revision
2586 -
Directory Listing
-
[select for diffs]
Modified
Tue Jan 20 20:10:04 2009 UTC
(15 years, 4 months ago)
by
laffer1
Diff to
previous 2585
,
to
selected 2715
sc->ndis_txidx should be cycle between 0 and sc->ndis_maxpkts, not
NDIS_TXPKTS and don't allocate unused extra spaces for sc->ndis_txarray
and sc->ndis_txpool.
Revision
2585 -
Directory Listing
-
[select for diffs]
Modified
Tue Jan 20 19:53:10 2009 UTC
(15 years, 4 months ago)
by
laffer1
Diff to
previous 2584
,
to
selected 2715
This fix was found in freebsd pr 124225
Description:
Normally, when packets are queued to the ndis network interface, ndis_start()
is called to move packets from the interface send queue to the underlying
NDIS driver.
If the network link is down or the underlying driver is busy transmitting data,
ndis_start() just returns.
When the link goes up, ndis_starttask() is supposed to be called after
ndis_ticktask() in order to transmit already queued packets.
After a watchdog timeout, ndis_starttask() is likewise supposed to be called
after ndis_resettask().
Unfortunately, work items used for triggering calls to ndis_ticktask(),
ndis_starttask() and ndis_resettask() are placed on separarate task lists which
are handled by separate kernel processes, thus losing ordering information
about when the tasks should be performed in relation to each other.
If the interface send queue is full after a watchdog timeout or link up event
and the tasks were handled in the wrong order then further attempts to send
packets via the interface results in ENOBUFS ("No buffer space available").
How-To-Repeat:
Use the ndis driver for a wireless network card in an area with many APs on
nearby channels and on a machine with many active tcp connections, causing link
to temporarily go down every few hours, and the interface send queue to be
filled while the link is temporarily down.
Fix:
A proper fix is to ensure that related tasks are handled in the correct order.
The following kludge justs add extra attempts at scheduling calls to
ndis_starttask() as part of the processing of ndis_ticktask() and
ndis_resettask(). It depends on defensive coding in IoQueueWorkItem(),
i.e. that nothing is done if the work item is already queued.
Revision
2583 -
Directory Listing
-
[select for diffs]
Modified
Tue Jan 20 19:40:53 2009 UTC
(15 years, 4 months ago)
by
laffer1
Diff to
previous 2582
,
to
selected 2715
Fix a problem with broadcom and marvell wifi using ndis. Scan results are not stored properly as some do not give a desired buffer length. Make a default. This fixes problems with some macbooks too
Revision
2564 -
Directory Listing
-
[select for diffs]
Modified
Mon Jan 19 22:02:25 2009 UTC
(15 years, 4 months ago)
by
laffer1
Diff to
previous 2563
,
to
selected 2715
Add bwi to MidnightBSD. bwi is a very limited broadcom wireless nic adapter from DragonFly, NetBSD, and OpenBSD. This is not connected to the build and requires a firmware which is hard to come by.
Revision
2391 -
Directory Listing
-
[select for diffs]
Modified
Sun Dec 7 03:28:31 2008 UTC
(15 years, 6 months ago)
by
laffer1
Diff to
previous 2390
,
to
selected 2715
Remove 3c501 isa based 3com nic. This is quite old and not entirely in line with the current development. I don't even have a system with an ISA slot to test one in if i had one. Also remove pcf which is replaced with i2c
Revision
2273 -
Directory Listing
-
[select for diffs]
Modified
Mon Dec 1 23:46:38 2008 UTC
(15 years, 6 months ago)
by
laffer1
Diff to
previous 2272
,
to
selected 2715
Make additional modifications to ata-chipset to syncronize with changes elsewhere in ata. Temporarily back out the sata + cd patch we were using (for the most part) to see how stable this is without it.
Revision
1806 -
Directory Listing
-
[select for diffs]
Modified
Thu Sep 4 02:55:23 2008 UTC
(15 years, 9 months ago)
by
laffer1
Diff to
previous 1804
,
to
selected 2715
Improve reliability of nforce4 adapters:
- When setting up a packet for transmit, if we the tx ring is over half
full, kick the binary blob to force it to complete any pending tx
completions.
- In the watchdog routine, poke the binary blob to force it to flush any
pending tx completions and only reset the chip if the blob doesn't
complete any of them.
Altqify nve(4).
Obtained from FreeBSD.
Revision
1719 -
Directory Listing
-
[select for diffs]
Modified
Tue Jul 1 07:45:59 2008 UTC
(15 years, 11 months ago)
by
laffer1
Diff to
previous 1718
,
to
selected 2715
Add additional intel, nvidia, and amd parts. The intel device using 0x28508086 is an ICH8 mobile ultra ata controller, but I'm not sure what identifier to use with it. It is a santa rosa 2850 controller. Some of these ids are from FreeBSD 6.3 (Soren and other contributors).
Revision
1683 -
Directory Listing
-
[select for diffs]
Modified
Sat Jun 28 18:24:33 2008 UTC
(15 years, 11 months ago)
by
laffer1
Diff to
previous 1677
,
to
selected 2715
Increase timeout from 5 to 10 seconds. This is an arbritrary value and found to be too short on SATA disks for certain operations. (moving bad blocks for instance)
This might also help with write errors in virtual machines.
Revision
1675 -
Directory Listing
-
[select for diffs]
Modified
Fri Jun 27 16:28:38 2008 UTC
(15 years, 11 months ago)
by
laffer1
Diff to
previous 1674
,
to
selected 2715
Move AHC and AHD options so they are near the drivers.
Enable firmware(9).
Enable WEP and WPA in kernel.
Fix whitespace problem. For options entries use space and tab not double tab.
Revision
1662 -
Directory Listing
-
[select for diffs]
Modified
Wed Jun 25 20:17:31 2008 UTC
(15 years, 11 months ago)
by
laffer1
Diff to
previous 1657
,
to
selected 2715
Add cpufreq(4) and GEOM_LABEL aka GLABEL to GENERIC on i386 and amd64.
cpufreq works with powerd which is already enabled on systems without ACPI support for CPU frequency using several chipsets (intel). This may cause problems for some people which might require an install option for powerd. This needs testing.
glabel allows one to name disks and reference them in dev by that name instead of their normal designation like acd0 or ad0s2d. By adding this to generic, we can easily make a live cd that works on more types of CDROMs. FreeBSD is also moving in this direction for other reasons.
Until the latter can be tested on sparc64, I'll keep it out of generic. We don't support sun style labels right now anyway.
Revision
1614 -
Directory Listing
-
[select for diffs]
Modified
Sat May 17 18:03:08 2008 UTC
(16 years, 1 month ago)
by
laffer1
Diff to
previous 1613
,
to
selected 2715
In ip_ctloutput(), check for a NULL inpcb pointer before dereferencing,
as this can occur with TCP if protocol-layer socket options are set or
queried after the connection has closed. There are still races
associated with ip_ctloutput() and connection close with TCP, corrected
in HEAD via a more comprehensive set of changes, but this fixes the
trivial panic reported on several occasions.
Obtained from: FreeBSD
Revision
1606 -
Directory Listing
-
[select for diffs]
Modified
Sat May 17 05:36:05 2008 UTC
(16 years, 1 month ago)
by
laffer1
Diff to
previous 1605
,
to
selected 2715
Syncronize the cpu detection code on i386 and amd64 with FreeBSD 6.2.
Add better SMP detection including multicore cpus. Detect features on newer processors and initialize them properly. Add support for some newer via c7 cpus.
Also make a subtle adjustment to tcp_syncache.c (unrelated)
Revision
1604 -
Directory Listing
-
[select for diffs]
Modified
Sat May 17 04:45:52 2008 UTC
(16 years, 1 month ago)
by
laffer1
Diff to
previous 1603
,
to
selected 2715
$MidnightBSD$
Add some k8 errata hacks to powernow.
smist:
Use bus_dma to get a page in the first 4 GB. Since the physical address
of the magic string is passed in a 32-bit register, we can't use high
memory in the PAE case. This also eliminates a use of vtophys().
Obtained from: FreeBSD.
Revision
1599 -
Directory Listing
-
[select for diffs]
Modified
Fri May 16 23:38:38 2008 UTC
(16 years, 1 month ago)
by
laffer1
Diff to
previous 1597
,
to
selected 2715
Pick the smallest possible TCP window scaling factor that will still allow us ot scale up to sb_max aka
kern.ipc.maxsockbuf.
Anything larger will cause window scaling corruption on some firewalls. (other end will think unscaled)
Obtained from: FreeBSD revision 1.131
Revision
1419 -
Directory Listing
-
[select for diffs]
Modified
Mon Mar 17 00:02:17 2008 UTC
(16 years, 3 months ago)
by
laffer1
Diff to
previous 1413
,
to
selected 2715
Fix spurious warnings from neighbor discovery when working with IPv6 over
point to point tunnels (gif).
This crops up when using one of the many IPV6 tunnel brokers, etc. with MidnightBSD.
Obtained from FreeBSD.
Revision
1372 -
Directory Listing
-
[select for diffs]
Modified
Mon Jan 21 20:21:07 2008 UTC
(16 years, 4 months ago)
by
laffer1
Diff to
previous 1362
,
to
selected 2715
Add virtual machine detection in the loader. For QEMU, VBOX, VMware, or Parallels, set the hz setting to 100. This will fix "time" issues automatically in these environments.
Revision
1347 -
Directory Listing
-
[select for diffs]
Modified
Sun Nov 25 18:05:17 2007 UTC
(16 years, 6 months ago)
by
laffer1
Diff to
previous 1346
,
to
selected 2715
Fix from FreeBSD:
The kernel uses two ways to write data on a pipe:
o buffered write, for chunks smaller than PIPE_MINDIRECT bytes
o direct write, for everything else
A call to writev(2) may receive struct iov of various size and the
kernel may have to switch from one solution to the other. Before doing
this, it must wake reader processes and any select/poll/kqueue up.
This commit fixes a bug where select/poll/kqueue are not triggered
when switching from buffered write to direct write. It adds calls to
pipeselwakeup().
Revision
1133 -
Directory Listing
-
[select for diffs]
Modified
Thu Aug 2 08:33:00 2007 UTC
(16 years, 10 months ago)
by
laffer1
Diff to
previous 1123
,
to
selected 2715
Fix interaction with Windows 2000/XP servers. If a newly created directory has exactly 50 entries, an error is generated as smbfs grabs 52 items at a time. With . and .. this is 52. It then returns on the second trip and causes some apps like rsync to generate errors.
Revision
1101 -
Directory Listing
-
[select for diffs]
Modified
Thu Jul 26 17:08:59 2007 UTC
(16 years, 10 months ago)
by
laffer1
Diff to
previous 1100
,
to
selected 2715
Intel/IBM Blades do not have keyboard devices and will hang. Avoid the hang with a timeout.
Apple intel-based Macs do not have a keyboard controller. Provide a timeout for these devices.
Revision
1065 -
Directory Listing
-
[select for diffs]
Modified
Sun Jul 22 07:57:59 2007 UTC
(16 years, 10 months ago)
by
laffer1
Diff to
previous 1032
,
to
selected 2715
MidnightBSD has had a behavior where incoming packets were dropped if the MRU > MTU. If you had a device misconfigured on your network, for instance with jumbo frames, the network stack would drop packets. This is not a desired behavior in most cases.
However, some people like to experiment with the existing behavior or have other reasons such as detecting misconfigured devices. We now have a new sysctl net.link.ether.MTUisMRU which allows you to tune this behavior. 0 is the default and implies the stack will take all incoming packets that it can handle whereas 1 reverts to the old behavior.
This patch was inspired by work from Julian Elischer @ freebsd-net
Revision
992 -
Directory Listing
-
[select for diffs]
Modified
Thu May 3 05:41:47 2007 UTC
(17 years, 1 month ago)
by
laffer1
Diff to
previous 987
,
to
selected 2715
UDP checksums are checked in place, overwriting whatever is there. This has the side effect of the ICMP code sending back the first eight bytes of the UDP payload with 2 bytes different.
Patch by Matthew Luckie.
Revision
983 -
Directory Listing
-
[select for diffs]
Modified
Fri Apr 27 20:29:07 2007 UTC
(17 years, 1 month ago)
by
laffer1
Diff to
previous 981
,
to
selected 2715
This is equivalent to the recent OpenBSD discover of type 0 routing headers as insecure. There is now a sysctl to enable the behavior. Currently, this is not needed unless the host is acting as a router. In which case, ideally there should be firewall rules in place to protect the host. ipfw and pf do not offer solutions to protect systems entirely yet.
This patch is derived from the FreeBSD SA-07:03.ipv6 patch.
Revision
886 -
Directory Listing
-
[select for diffs]
Modified
Mon Apr 2 00:48:03 2007 UTC
(17 years, 2 months ago)
by
archite
Diff to
previous 882
,
to
selected 2715
Importing propolice into MidnightBSD. Propolice is going to
provide us with much greater security and stability in the
long run. If upgrading from a pre-propolice system, please
follow the these instructions:
cd /usr/src/lib/libc && make obj && make && make install
cd /usr/src/gnu/usr.bin/cc && make obj && make && make install
buildworld and kernel
It is adviced that any mports which were installed and/or built
prior to the propolice update also be updated. If any errors
or issue are encounted, please contact security@midnightbsd.org
and we will be sure to investigate and come up with an expeditious
fix.
Revision
882 -
Directory Listing
-
[select for diffs]
Modified
Thu Mar 29 23:02:48 2007 UTC
(17 years, 2 months ago)
by
laffer1
Diff to
previous 881
,
to
selected 2715
Increase LOMTU to 32768. The previous value was set in 1995. NetBSD has been using around 32k since the BSD 4.4 lite import.
My testing has shown 32768 is faster on some workloads. There is a very slight drop transfer large, cached data but uncached data showed a noticable improvement.
Revision
881 -
Directory Listing
-
[select for diffs]
Modified
Thu Mar 29 22:44:53 2007 UTC
(17 years, 2 months ago)
by
laffer1
Diff to
previous 863
,
to
selected 2715
Remove WARNS from cpufreq Makefile. kernel source Makefiles should not use WANRS as it conflicts with kernel build options.
Add additional Pentium M cpus.
Revision
800 -
Directory Listing
-
[select for diffs]
Modified
Mon Mar 12 21:17:04 2007 UTC
(17 years, 3 months ago)
by
laffer1
Diff to
previous 799
,
to
selected 2715
Fill in the correct rtm_index for RTM_ADD and RTM_CHANGE messages.
Allow RTM_CHANGE to change a number of route flags as specified by RTF_FMASK.
The unusued rtm_use filed in struct rt_Msghdr is redesignated as rtm_fmask field to communicate route flag changes in RTM_CHANGE messages from userland. The use count of a route was moved to rtm_rmx some time ago.
Revision
796 -
Directory Listing
-
[select for diffs]
Modified
Mon Mar 12 20:59:27 2007 UTC
(17 years, 3 months ago)
by
laffer1
Diff to
previous 795
,
to
selected 2715
Sound overhaul.
Fix 8bit int overflows during channel creation and destruction on vchans.
Enforce channel/chardev numbering within 8bit boundary.
Traverse d-channels SLIT and try to reclaim free counter during channel creation.
Determine open direction using 'flags', not mode.
Don't allow opening the same device twice. (WTF?)
O_RDWR is allowed, provided that it is done by a single open and the hardware supports full duplex.
Fix pcm_unregister memory leak.
Optimize channel allocation and numbering.
Mega vchan create/destroy cleanup.
Obtained from FreeBSD
Revision
789 -
Directory Listing
-
[select for diffs]
Modified
Mon Mar 12 20:28:30 2007 UTC
(17 years, 3 months ago)
by
laffer1
Diff to
previous 788
,
to
selected 2715
If the buffer lock has waiters after the bufer has changed identity then getnewbuf() needs to drop the buffer in order to wake waiters that might sleep on the buffer in the context of the old identity.
Obtained from FreeBSD (tegge) 1.491.2.8
Revision
764 -
Directory Listing
-
[select for diffs]
Modified
Thu Mar 8 17:11:18 2007 UTC
(17 years, 3 months ago)
by
laffer1
Diff to
previous 761
,
to
selected 2715
If an NFS server returns more than a few EJUKEBOX errors for a given RPC request, the NFS client will back off for a very long wait (days, weeks) before retrying.
Change behavior to match solaris. There is a new sysctl nfs3_jukebox_delay which is in seconds to adjust the retry default.
Revision
743 -
Directory Listing
-
[select for diffs]
Modified
Mon Feb 19 21:30:39 2007 UTC
(17 years, 3 months ago)
by
laffer1
Diff to
previous 742
,
to
selected 2715
This is a patch from Andrew Turner to allow partial booting on EFIKA. It includes ofwread.S from NetBSD. It uses the real-mode ofw interface from NetBSD and TLB exception handlers from FreeBSD's perforce //depot/user/jaras.
The ofwr_init call is not enabled by default as it breaks Macs. If the ifdef FIRMWORKSBUGS is commented out, EFIKA will work until it hits the scheduler.
Revision
729 -
Directory Listing
-
[select for diffs]
Modified
Wed Feb 7 15:50:03 2007 UTC
(17 years, 4 months ago)
by
laffer1
Diff to
previous 712
,
to
selected 2715
TCP Auto sizing of socket buffers improves throughput on high latency links. Several new sysctls were added to control the buffers max size, etc.
Additional work is needed, but under initial testing this is working great. You must rebulid world in order for netstat to work correctly.
A few changes were made to netstat, but do not change functionality in any significant way.
Revision
712 -
Directory Listing
-
[select for diffs]
Modified
Sun Jan 28 18:22:15 2007 UTC
(17 years, 4 months ago)
by
laffer1
Diff to
previous 706
,
to
selected 2715
Add additonal PATA controllers found on newer motherboards.
This specifically fixes the INTEL DP965LT which I happen to be using. Many Intel motherboards use one of these chips.
Revision
696 -
Directory Listing
-
[select for diffs]
Modified
Fri Jan 19 03:23:17 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 693
,
to
selected 2715
Fix up IPXIP so that the network stack is run with Giant. There is unsafety in the code that requires this change for SMP systems to function properly.
Revision
689 -
Directory Listing
-
[select for diffs]
Modified
Fri Jan 19 02:33:24 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 681
,
to
selected 2715
Clear the interupt source flags before processing the interupt events and turn off NIC interrupts while in the interrupt handler.
Relax the watchdog timer somewhat; don't enable it until the last packet is enqueued and if there is a TX interrupt but there are still outstanding ones reload the timer.
Revision
668 -
Directory Listing
-
[select for diffs]
Modified
Thu Jan 18 03:39:19 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 667
,
to
selected 2715
When a process is de-configuring a log file, also stop all of its PMCs that require a log file to operate.
Only stop PMCs that are in the running state.
Revision
618 -
Directory Listing
-
[select for diffs]
Modified
Sat Jan 13 15:00:24 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 617
,
to
selected 2715
Further refine the bridge hack in teh arp code. Only do the special arp handling for interfaces which are actually in the bridge group, ignore all others.
Revision
556 -
Directory Listing
-
[select for diffs]
Modified
Sun Jan 7 22:14:28 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 555
,
to
selected 2715
Fix random popping while playing in 32bit by increasing the buffer size.
Fix severe crackling under repetative module load/unload.
Make sure DMA pointer is properly aligned to avoid trunication by caller.
Add ac97 inverted external amplifier quirk for Maxselect x710s. (russian)
Trim unnecessary pointer alignment.
Revision
550 -
Directory Listing
-
[select for diffs]
Modified
Sun Jan 7 04:40:58 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 549
,
to
selected 2715
Have TCP Inflight disable itself if RTT is too low.
sysctl net.inet.tcp.inflight.rttthresh specifies the threshold in milliseconds below which it will disengage inflight. It defaults to 10ms.
Revision
534 -
Directory Listing
-
[select for diffs]
Modified
Sun Jan 7 03:50:23 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 533
,
to
selected 2715
Apply some patches from FreeBSD 6.1 Release for cpu detection, ioctl fixes, etc.
Change i386 GENERIC kernel to include VESA and raster support so that end users can easily switch to 800x600 and other video modes in the console. While the kernel size is larger, it makes more sense on a desktop.
Revision
519 -
Directory Listing
-
[select for diffs]
Modified
Sat Jan 6 06:02:29 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 516
,
to
selected 2715
Add a spinlock to handles cases where printf, etc are called simultaneously. This should fix console freezes in some circumstances.
This patch was based on a similar patch to FreeBSD stable, however, we do not use the new "enhanced" syscons code so it will require further testing. It works fine on a UNI box.
Revision
515 -
Directory Listing
-
[select for diffs]
Modified
Sat Jan 6 01:16:44 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 514
,
to
selected 2715
Check the return code of sc_clean_up() in the only place missing. There is only one case where it can fail in wait_scrn_saver_stop(), but might as well check.
Revision
514 -
Directory Listing
-
[select for diffs]
Modified
Sat Jan 6 01:11:46 2007 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 465
,
to
selected 2715
Sometimes the vty switching has to be delayed; the vty to be switched is saved in sc->delayed_next_scr and toe actual switch happens later. It is possible to get into an endless loop when trying to switch to a closed vty.
To repeat:
boot single user
run kbdcontrol -b visual
quickly press alt + f2 twice.
Revision
454 -
Directory Listing
-
[select for diffs]
Modified
Sun Dec 31 21:10:52 2006 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 448
,
to
selected 2715
Just to clarify compatiblity, we've merged all changes between the import date of Feb 24 and the tcsh Feb 26 commit in FreeBSD. Bump the version number.
Revision
437 -
Directory Listing
-
[select for diffs]
Modified
Sun Dec 31 08:58:59 2006 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 436
,
to
selected 2715
Replace 4k mbuf clusters with PAGE_SIZE clusters. This should improve TCP/IP performance.
Also add new MidnightBSD_version which will someday replace osreldate etc.
Revision
374 -
Directory Listing
-
[select for diffs]
Modified
Wed Dec 27 04:51:23 2006 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 373
,
to
selected 2715
Look for BSD label at 512-byte offset, if not found on the very beginning of the second sector. This makes it compatible with labels created by disklabel(8) on non-512-byte-per-sector devices.
Import from FreeBSD.
Revision
373 -
Directory Listing
-
[select for diffs]
Modified
Wed Dec 27 04:48:57 2006 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 372
,
to
selected 2715
Delay an orphan event if provider has still in-flight I/O requests. GEOM classes can then detach safely from the provider when an orphan event is received. Fixes a 'detach with active requests' panic for gstripe/gconcat under load.
Imported/Obtained from FreeBSD.
Revision
371 -
Directory Listing
-
[select for diffs]
Modified
Wed Dec 27 04:45:12 2006 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 370
,
to
selected 2715
Add g_duplicate_bio() function which does the same thing as g_clone_bio() except it allocates new bio with a M_WAITOK flag.
sys/geom/geom.h
sys/geom/geom_io.c
Import from FreeBSD.
Revision
342 -
Directory Listing
-
[select for diffs]
Modified
Thu Dec 21 16:47:20 2006 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 341
,
to
selected 2715
Fix some race conditions in TTY code. tty and sessrele(), doenterpgrp(), leavepgrp(), pgdelete() and enterpgrp(). The tty code is still under giant lock, but the session/pgrp release code just used proctree_locks. P_CONTROLT isn't really fully locked too in enterpgrp().
Obtained from FreeBSD, mbr.
Revision
341 -
Directory Listing
-
[select for diffs]
Modified
Thu Dec 21 16:31:26 2006 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 340
,
to
selected 2715
Retest tp->t_session because Giant might have been temporarily dropped while waiting for proctree_lock, allowing for an intervening tty_close() that cleared tp_>t_session.
Obtained from FreeBSD,tegge.
Revision
340 -
Directory Listing
-
[select for diffs]
Modified
Thu Dec 21 16:22:39 2006 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 339
,
to
selected 2715
Consistently use if_printf() only in interface methods: if_start, if_ioctl, if_watchdog, etc or in functions that are used by these methods only. In all other cases, device_printf should be used.
This also fixes several panics when if_printf() is called before softc->ifp was initialized.
Revision
339 -
Directory Listing
-
[select for diffs]
Modified
Thu Dec 21 16:18:09 2006 UTC
(17 years, 5 months ago)
by
laffer1
Diff to
previous 337
,
to
selected 2715
IF_LLADDR does not necessarily return aligned memory addresses. Since accessing ID registers in rt181x9 needs 32bit register access and RL_IDR6/RL_IDR7 registers are reserved registers bzero() is needed before copying the ethernet address.
This fixes a bug in Sparc64
Obtained from FreeBSD, yongari.
Revision
321 -
Directory Listing
-
[select for diffs]
Modified
Mon Oct 30 18:51:07 2006 UTC
(17 years, 7 months ago)
by
laffer1
Diff to
previous 302
,
to
selected 2715
i915 attachment and running fixed.
i915 vblank support.
Radeon's new memory map support.
ATI PCI/PCIE GART fix.
r300 fixes
Hack to radeon module to shut up errors.
Obtained from FreeBSD stable
Revision
298 -
Directory Listing
-
[select for diffs]
Modified
Sat Oct 28 04:16:57 2006 UTC
(17 years, 7 months ago)
by
laffer1
Diff to
previous 297
,
to
selected 2715
Don't set CR0_NE and CR0_MP in npx_probe() as they are already set earlier in cpu_setregs().
If we know this CPU has a FPU via cpuid, just assume INT16 and make the dmesg quiet. This is true for all Pentium class processors and even some 486DX systems.
Revision
281 -
Directory Listing
-
[select for diffs]
Modified
Thu Oct 26 21:17:32 2006 UTC
(17 years, 7 months ago)
by
laffer1
Diff to
previous 280
,
to
selected 2715
Part 2 of our large ata update. Most of these changes come from FreeBSD 6-stable or 6.1 Release. We should be at least at 6.1 release levels with our support for devices with this commit.
Add support for the JMicron JMB361, 365 and 366 chips.
Make the ATAPI sense data accessible when using the ioctl interface.
Revision
267 -
Directory Listing
-
[select for diffs]
Modified
Fri Oct 13 23:15:50 2006 UTC
(17 years, 8 months ago)
by
laffer1
Diff to
previous 266
,
to
selected 2715
Only use the channel in the request given to ata_completed if
its still present.
Only look for ICRC and CORR errors on ATA devices not ATAPI.
Get rid of all the long long and mixint casting in printfs'.
On all our platforms intmax == int64_t so simply using %j to
print int64_ts' is safe all over, and doesn't pollute the code.
Update atapi-fd to support direct devices such as disks.
ATAUSB will need to hook inot the delayed boot identity to
have interrupts running, so externalize it.
Add USB modes.
Revision
266 -
Directory Listing
-
[select for diffs]
Modified
Fri Oct 13 20:43:48 2006 UTC
(17 years, 8 months ago)
by
laffer1
Diff to
previous 265
,
to
selected 2715
Keep the parent device (channel) around in ata_request so that we don't
panic on device removal or failure.
Clean up ata_fail_requests to prevent the queue mnging to fail.
Ensure ata_reinit does things in the right order to prevent panics.
Revision
244 -
Directory Listing
-
[select for diffs]
Modified
Tue Oct 10 15:23:51 2006 UTC
(17 years, 8 months ago)
by
laffer1
Diff to
previous 243
,
to
selected 2715
Fix bug in malloc_uninit():
Releasing items from the mt_zone can not be done by a simple uma_zfree() call since mt_zone is allocated with the UMA_ZONE_MALLOC flag. Use uma_zfree_arg instead and supply the slam.
This bug can cause panics in low memory conditions while unloading kernel modules containing MALLOC_DEFINE(...) statements.
This commit brings kern_malloc.c up to FreeBSD 6.1 release equivalency.
Revision
221 -
Directory Listing
-
[select for diffs]
Modified
Sun Oct 8 06:07:29 2006 UTC
(17 years, 8 months ago)
by
laffer1
Diff to
previous 220
,
to
selected 2715
When enabling A20 put upper limit on amount of time we wait for the keyboard controller to get ready (65K x ISA access time, visually around 1 second). If we have wait more than that amount it's likely that the hardware is a legacy-free system and doesn't have a keyboard controller and doesn't require enabling A20 at all.
This makes cdboot/pxeldr work on MacBook Pro systems with Boot Camp and some IBM Netvista systems such as the S40.
Revision
173 -
Directory Listing
-
[select for diffs]
Modified
Sun Sep 17 02:37:31 2006 UTC
(17 years, 9 months ago)
by
laffer1
Diff to
previous 162
,
to
selected 2715
Update from 6.0.5 to 6.1.4 Intel driver. This update adds support for one additional NIC and hopefully will fix some problems with the em found on some Dell gx260's negotiating below gigabit speeds!
Revision
162 -
Directory Listing
-
[select for diffs]
Modified
Wed Sep 6 14:57:43 2006 UTC
(17 years, 9 months ago)
by
laffer1
Diff to
previous 159
,
to
selected 2715
Work around a deadlock when ATA waits for the taskqueue to call back for completion and something else is holding the taskqueue waiting for ATA to return.
Fixes the "semaphore timeout !! DANGER Will Robinson !!" messages. This patch was obtained from FreeBSD ata-queue.c 1.50.2.3 (march 1 2006) and ata-all.h from the same time.
Revision
133 -
Directory Listing
-
[select for diffs]
Modified
Fri Aug 25 06:24:52 2006 UTC
(17 years, 9 months ago)
by
laffer1
Diff to
previous 132
,
to
selected 2715
ACPI patches for laptops and other changes related to the new sleep_queue / em driver commit.
if_media was updated to allow import of bce and some baudrate changes in vge.
Revision
131 -
Directory Listing
-
[select for diffs]
Modified
Fri Aug 25 06:20:58 2006 UTC
(17 years, 9 months ago)
by
laffer1
Diff to
previous 130
,
to
selected 2715
Patched ACPI problem in hwpcm which needs further testing. randomdev was updated along with it.
mii had a bug with recently driver patches as a function was missing to set the ifmedia_baudrate(). The function was added elsewhere.
Revision
120 -
Directory Listing
-
[select for diffs]
Modified
Thu Aug 24 05:35:39 2006 UTC
(17 years, 9 months ago)
by
laffer1
Diff to
previous 119
,
to
selected 2715
Intel gigabit network driver (em) updated to 6.05 with FreeBSD 6-stable enhancements. Commit required a sync to a new version of the sleep queue routines which also fixed a deadlock problem. An ACPI issue with some laptops has been noted and a fix will be forthcoming.
Revision
46 -
Directory Listing
-
[select for diffs]
Modified
Fri Aug 4 17:10:41 2006 UTC
(17 years, 10 months ago)
by
laffer1
Diff to
previous 45
,
to
selected 2715
FreeBSD-SA6:13 and 14 were patched. The nis software and amd athlon fpu handling fixed. Changes to echo and pfctl are needed to fix compile bugs with changes related to cvs tags and macros.