ƒ»l229428 102 186 858 381 414 1387 1387 1387 807 173 742 1696 1696 1696 2326 2326 2326 135 135 135 292 292 292 419 580 417 417 417 158 169 169 169 238 449 225 163 227 224 173 204 204 286 219 231 172 174 187 187 134 253 373 135 410 235 235 151 151 151 220 220 233 233 216 216 216 344 325 304 521 152 717 143 414 231 287 287 814 969 294 294 181 345 3247 3283 373 943 117 199 160 171 202 404 182 1280 187 1280 1280 1284 1284 1284 143 143 978 K 10 svn:author V 3 kib K 8 svn:date V 27 2012-01-03T21:03:20.926231Z K 7 svn:log V 94 Document the state of the lowervp vnode for null_nodeget(). Tested by: pho MFC after: 1 week END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-03T21:03:28.367261Z K 7 svn:log V 765 Some small fixes to CPU accounting for threads: - Only initialize the per-cpu switchticks and switchtime in sched_throw() for the very first context switch on APs during boot. This avoids a small gap between the middle of thread_exit() and sched_throw() where time is not accounted to any thread. - In thread_exit(), update the timestamp bookkeeping to track the changes to mi_switch() introduced by td_rux so that the code once again matches the comment claiming it is mimicing mi_switch(). Specifically, only update the per-thread stats directly and depend on ruxagg() to update p_rux rather than adjusting p_rux directly. While here, move the timestamp bookkeeping as late in the function as possible. Reviewed by: bde, kib MFC after: 1 week END K 10 svn:author V 3 pfg K 8 svn:date V 27 2012-01-03T21:04:54.259850Z K 7 svn:log V 288 Replace a GPL'd header in the emu10k1 snd driver code. This brings in the emuxkireg.h from NetBSD (dev/pci) which is used for the same purpose but is smaller. The emu10k1 is now free from the GPL. PR: 153901 Obtained from: NetBSD Approved by: core (mentor implicit) MFC after: 2 weeks END K 10 svn:author V 3 kib K 8 svn:date V 27 2012-01-03T21:09:07.534700Z K 7 svn:log V 321 Do the vput() for the lowervp in the null_nodeget() for error case too. Several callers of null_nodeget() did the cleanup itself, but several missed it, most prominent being null_bypass(). Remove the cleanup from the callers, now null_nodeget() handles lowervp free itself. Reported and tested by: pho MFC after: 1 week END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T21:16:00.896531Z K 7 svn:log V 1289 MFC r227347,227367: r227347: Retire 'options TI_PRIVATE_JUMBOS' and replace local jumbo allocator with UMA backed jumbo allocator by default. Previously ti(4) used sf_buf(9) interface for jumbo buffers but it was broken at this moment such that enabling jumbo frame caused instant panic. Due to the nature of sf_buf(9) it heavily relies on VM changes but it seems ti(4) was not received much blessing from VM gurus. I don't understand VM magic and implications used in driver either. Switching to UMA backed jumbo allocator like other network drivers will make jumbo frame work on ti(4). While I'm here, fully allocate all RX buffers. This means ti(4) now uses 512 RX buffer and 1024 mini RX buffers. To use sf_buf(9) interface for jumbo buffers, introduce a new 'options TI_SF_BUF_JUMBO'. If it is proven that sf_buf(9) is better for jumbo buffers, interesting developers can fix the issue in future. ti(4) still needs more bus_dma(9) cleanups and should use separate DMA tag/map for each ring(standard, jumbo, mini, command, event etc) but it should work on all platforms except PAE. Special thanks to Jay[1] who provided complete remote debugging access. r227367: Comment out TI_JUMBO_HDRSPLIT. TI_JUMBO_HDRSPLIT requires TI_SF_BUF_JUMBO. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T21:17:59.373824Z K 7 svn:log V 1289 MFC r227347,227367: r227347: Retire 'options TI_PRIVATE_JUMBOS' and replace local jumbo allocator with UMA backed jumbo allocator by default. Previously ti(4) used sf_buf(9) interface for jumbo buffers but it was broken at this moment such that enabling jumbo frame caused instant panic. Due to the nature of sf_buf(9) it heavily relies on VM changes but it seems ti(4) was not received much blessing from VM gurus. I don't understand VM magic and implications used in driver either. Switching to UMA backed jumbo allocator like other network drivers will make jumbo frame work on ti(4). While I'm here, fully allocate all RX buffers. This means ti(4) now uses 512 RX buffer and 1024 mini RX buffers. To use sf_buf(9) interface for jumbo buffers, introduce a new 'options TI_SF_BUF_JUMBO'. If it is proven that sf_buf(9) is better for jumbo buffers, interesting developers can fix the issue in future. ti(4) still needs more bus_dma(9) cleanups and should use separate DMA tag/map for each ring(standard, jumbo, mini, command, event etc) but it should work on all platforms except PAE. Special thanks to Jay[1] who provided complete remote debugging access. r227367: Comment out TI_JUMBO_HDRSPLIT. TI_JUMBO_HDRSPLIT requires TI_SF_BUF_JUMBO. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T21:21:25.190408Z K 7 svn:log V 1289 MFC r227347,227367: r227347: Retire 'options TI_PRIVATE_JUMBOS' and replace local jumbo allocator with UMA backed jumbo allocator by default. Previously ti(4) used sf_buf(9) interface for jumbo buffers but it was broken at this moment such that enabling jumbo frame caused instant panic. Due to the nature of sf_buf(9) it heavily relies on VM changes but it seems ti(4) was not received much blessing from VM gurus. I don't understand VM magic and implications used in driver either. Switching to UMA backed jumbo allocator like other network drivers will make jumbo frame work on ti(4). While I'm here, fully allocate all RX buffers. This means ti(4) now uses 512 RX buffer and 1024 mini RX buffers. To use sf_buf(9) interface for jumbo buffers, introduce a new 'options TI_SF_BUF_JUMBO'. If it is proven that sf_buf(9) is better for jumbo buffers, interesting developers can fix the issue in future. ti(4) still needs more bus_dma(9) cleanups and should use separate DMA tag/map for each ring(standard, jumbo, mini, command, event etc) but it should work on all platforms except PAE. Special thanks to Jay[1] who provided complete remote debugging access. r227367: Comment out TI_JUMBO_HDRSPLIT. TI_JUMBO_HDRSPLIT requires TI_SF_BUF_JUMBO. END K 10 svn:author V 3 kib K 8 svn:date V 27 2012-01-03T22:36:12.023256Z K 7 svn:log V 714 Add special loader environment variables 'comconsole_port' and 'comconsole_pcidev'. The former allows to set the base address of the serial console i/o port. The later takes the string of the format 'bus:device:function:[bar]' as a value and uses the serial port attached as PCI device at the specified location for console. Both variants pass 'hw.uart.console' variable to the uart driver to properly hand-over the kernel console. Change allows to use ISA serial ports other than COM1 for the loader/kernel console without loader recompilation. Also, you can use PCI-attached port as the console, e.g. Intel AMT serial pseudo-port on some motherboards based on Q67 chipset. Reviewed by: jhb MFC after: 2 weeks END K 10 svn:author V 3 pjd K 8 svn:date V 27 2012-01-03T22:52:29.564941Z K 7 svn:log V 81 Fix an obvious typo. We do want to specify file permission when we pass O_CREAT. END K 10 svn:author V 2 ed K 8 svn:date V 27 2012-01-03T23:05:23.673570Z K 7 svn:log V 650 Simply disallow to be used in combination with C++. There is no way one could possibly use this header file in combination with C++ code. The problem is that in C11 the `noreturn' macro expands to the `_Noreturn' function specifier, while in C++11 the `noreturn' keyword is an attribute. So in C11 you have to write: noreturn void exit(int status); While in C++11 you have to write: [[noreturn]] void exit(int status); It is impossible to #define noreturn for C++ in such a way that it allows both conventions. By intentionally breaking this header this way, we prevent people from using this header in their C++<11 sources. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T23:36:29.434925Z K 7 svn:log V 1598 MFC r227431-227432,227505,227509: r227431: style. No functional changes. r227432: Remove dead ifdef. Driver should always check raised interrupt is for the device. r227505: It's bad idea to allocate large memory, 4KB, from stack. Pre-allocate the memory in device attach time. While I'm here remove unnecessary reassignment of error variable as it was already initialized. Also added a missing driver lock in TIIOCSETTRACE handler. r227509: Export sysctl node for various interrupt moderation parameters and have administrators control them. ti(4) provides a character device to control various other features of driver via ioctls but users had to write their own code to manipulate these parameters. It seems some default values for these parameters are not optimal on today's system but leave it as it was and let administrators change them. The following parameters could be changed: dev.ti.%d.rx_coal_ticks dev.ti.%d.rx_max_coal_bds dev.ti.%d.tx_coal_ticks dev.ti.%d.tx_max_coal_bds dev.ti.%d.tx_buf_ratio dev.ti.%d.stat_ticks The interface has to be brought down and up again before a change takes effect. ti(4) controller supports hardware MAC counters with additional DMA statistics. So it's doable to export these counters via sysctl interface. Unfortunately, these counters are cumulative such that driver have to either send an explicit clear command to controller after extracting them or have to maintain internal counters to get actual changes. Neither look good to me so counters were not exported via sysctl. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T23:38:16.773139Z K 7 svn:log V 1598 MFC r227431-227432,227505,227509: r227431: style. No functional changes. r227432: Remove dead ifdef. Driver should always check raised interrupt is for the device. r227505: It's bad idea to allocate large memory, 4KB, from stack. Pre-allocate the memory in device attach time. While I'm here remove unnecessary reassignment of error variable as it was already initialized. Also added a missing driver lock in TIIOCSETTRACE handler. r227509: Export sysctl node for various interrupt moderation parameters and have administrators control them. ti(4) provides a character device to control various other features of driver via ioctls but users had to write their own code to manipulate these parameters. It seems some default values for these parameters are not optimal on today's system but leave it as it was and let administrators change them. The following parameters could be changed: dev.ti.%d.rx_coal_ticks dev.ti.%d.rx_max_coal_bds dev.ti.%d.tx_coal_ticks dev.ti.%d.tx_max_coal_bds dev.ti.%d.tx_buf_ratio dev.ti.%d.stat_ticks The interface has to be brought down and up again before a change takes effect. ti(4) controller supports hardware MAC counters with additional DMA statistics. So it's doable to export these counters via sysctl interface. Unfortunately, these counters are cumulative such that driver have to either send an explicit clear command to controller after extracting them or have to maintain internal counters to get actual changes. Neither look good to me so counters were not exported via sysctl. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T23:39:30.303253Z K 7 svn:log V 1598 MFC r227431-227432,227505,227509: r227431: style. No functional changes. r227432: Remove dead ifdef. Driver should always check raised interrupt is for the device. r227505: It's bad idea to allocate large memory, 4KB, from stack. Pre-allocate the memory in device attach time. While I'm here remove unnecessary reassignment of error variable as it was already initialized. Also added a missing driver lock in TIIOCSETTRACE handler. r227509: Export sysctl node for various interrupt moderation parameters and have administrators control them. ti(4) provides a character device to control various other features of driver via ioctls but users had to write their own code to manipulate these parameters. It seems some default values for these parameters are not optimal on today's system but leave it as it was and let administrators change them. The following parameters could be changed: dev.ti.%d.rx_coal_ticks dev.ti.%d.rx_max_coal_bds dev.ti.%d.tx_coal_ticks dev.ti.%d.tx_max_coal_bds dev.ti.%d.tx_buf_ratio dev.ti.%d.stat_ticks The interface has to be brought down and up again before a change takes effect. ti(4) controller supports hardware MAC counters with additional DMA statistics. So it's doable to export these counters via sysctl interface. Unfortunately, these counters are cumulative such that driver have to either send an explicit clear command to controller after extracting them or have to maintain internal counters to get actual changes. Neither look good to me so counters were not exported via sysctl. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T23:44:05.551520Z K 7 svn:log V 2228 MFC r227512: Overhaul bus_dma(9) usage in driver: - Don't use a single big DMA block for all rings. Create separate DMA area for each ring instead. Currently the following DMA areas are created: Event ring, standard RX ring, jumbo RX ring, RX return ring, hardware MAC statistics and producer/consumer status area. For Tigon II, mini RX ring and TX ring are additionally created. - Added missing bus_dmamap_sync(9) in various TX/RX paths. - TX ring is no longer created for Tigon 1 such that it saves more resources on Tigon 1. - Data sheet is not clear about alignment requirement of each ring so use 32 bytes alignment for normal DMA area but use 64 bytes alignment for jumbo RX ring where the extended RX descriptor size is 64 bytes. - For each TX/RX buffers use separate DMA tag(e.g. the size of a DMA segment, total size of DMA segments etc). - Tigon allows separate DMA area for event producer, RX return producer and TX consumer which is really cool feature. This means TX and RX path could be independently run in parallel. However ti(4) uses a single driver lock so it's meaningless to have separate DMA area for these producer/consumer such that this change creates a single status DMA area. - It seems Tigon has no limits on DMA address space and I also don't see any problem with that but old comments in driver indicates there could be issues on descriptors being located in 64bit region. Introduce a tunable, dev.ti.%d.dac, to disable using 64bit DMA in driver. The default is 0 which means it would use full 64bit DMA. If there are DMA issues, users can disable it by setting the tunable to 0. - Do not increase watchdog timer in ti_txeof(). Previously driver increased the watchdog timer whenever there are queued TX frames. - When stat ticks is set to 0, skip processing ti_stats_update(), avoiding bus_dmamap_sync(9) and updating if_collisions counter. - MTU does not include FCS bytes, replace it with ETHER_VLAN_ENCAP_LEN. With these changes, ti(4) should work on PAE environments. Many thanks to Jay Borkenhagen for remote hardware access. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T23:45:44.448731Z K 7 svn:log V 2228 MFC r227512: Overhaul bus_dma(9) usage in driver: - Don't use a single big DMA block for all rings. Create separate DMA area for each ring instead. Currently the following DMA areas are created: Event ring, standard RX ring, jumbo RX ring, RX return ring, hardware MAC statistics and producer/consumer status area. For Tigon II, mini RX ring and TX ring are additionally created. - Added missing bus_dmamap_sync(9) in various TX/RX paths. - TX ring is no longer created for Tigon 1 such that it saves more resources on Tigon 1. - Data sheet is not clear about alignment requirement of each ring so use 32 bytes alignment for normal DMA area but use 64 bytes alignment for jumbo RX ring where the extended RX descriptor size is 64 bytes. - For each TX/RX buffers use separate DMA tag(e.g. the size of a DMA segment, total size of DMA segments etc). - Tigon allows separate DMA area for event producer, RX return producer and TX consumer which is really cool feature. This means TX and RX path could be independently run in parallel. However ti(4) uses a single driver lock so it's meaningless to have separate DMA area for these producer/consumer such that this change creates a single status DMA area. - It seems Tigon has no limits on DMA address space and I also don't see any problem with that but old comments in driver indicates there could be issues on descriptors being located in 64bit region. Introduce a tunable, dev.ti.%d.dac, to disable using 64bit DMA in driver. The default is 0 which means it would use full 64bit DMA. If there are DMA issues, users can disable it by setting the tunable to 0. - Do not increase watchdog timer in ti_txeof(). Previously driver increased the watchdog timer whenever there are queued TX frames. - When stat ticks is set to 0, skip processing ti_stats_update(), avoiding bus_dmamap_sync(9) and updating if_collisions counter. - MTU does not include FCS bytes, replace it with ETHER_VLAN_ENCAP_LEN. With these changes, ti(4) should work on PAE environments. Many thanks to Jay Borkenhagen for remote hardware access. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T23:46:45.115316Z K 7 svn:log V 2228 MFC r227512: Overhaul bus_dma(9) usage in driver: - Don't use a single big DMA block for all rings. Create separate DMA area for each ring instead. Currently the following DMA areas are created: Event ring, standard RX ring, jumbo RX ring, RX return ring, hardware MAC statistics and producer/consumer status area. For Tigon II, mini RX ring and TX ring are additionally created. - Added missing bus_dmamap_sync(9) in various TX/RX paths. - TX ring is no longer created for Tigon 1 such that it saves more resources on Tigon 1. - Data sheet is not clear about alignment requirement of each ring so use 32 bytes alignment for normal DMA area but use 64 bytes alignment for jumbo RX ring where the extended RX descriptor size is 64 bytes. - For each TX/RX buffers use separate DMA tag(e.g. the size of a DMA segment, total size of DMA segments etc). - Tigon allows separate DMA area for event producer, RX return producer and TX consumer which is really cool feature. This means TX and RX path could be independently run in parallel. However ti(4) uses a single driver lock so it's meaningless to have separate DMA area for these producer/consumer such that this change creates a single status DMA area. - It seems Tigon has no limits on DMA address space and I also don't see any problem with that but old comments in driver indicates there could be issues on descriptors being located in 64bit region. Introduce a tunable, dev.ti.%d.dac, to disable using 64bit DMA in driver. The default is 0 which means it would use full 64bit DMA. If there are DMA issues, users can disable it by setting the tunable to 0. - Do not increase watchdog timer in ti_txeof(). Previously driver increased the watchdog timer whenever there are queued TX frames. - When stat ticks is set to 0, skip processing ti_stats_update(), avoiding bus_dmamap_sync(9) and updating if_collisions counter. - MTU does not include FCS bytes, replace it with ETHER_VLAN_ENCAP_LEN. With these changes, ti(4) should work on PAE environments. Many thanks to Jay Borkenhagen for remote hardware access. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T23:57:27.993845Z K 7 svn:log V 39 MFC r227348: ti(4) supports altq(4). END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T23:57:47.461527Z K 7 svn:log V 39 MFC r227348: ti(4) supports altq(4). END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-03T23:58:02.099802Z K 7 svn:log V 39 MFC r227348: ti(4) supports altq(4). END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T00:03:33.217715Z K 7 svn:log V 195 MFC r227349,227513-227514: r227349: Document TI_SF_BUF_JUMBO and Xr altq. r227513: Document newly introduced a loader tunable and sysctl variables. r227514: Clarify hw.ti.%d.dac tunable. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T00:03:50.330382Z K 7 svn:log V 195 MFC r227349,227513-227514: r227349: Document TI_SF_BUF_JUMBO and Xr altq. r227513: Document newly introduced a loader tunable and sysctl variables. r227514: Clarify hw.ti.%d.dac tunable. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T00:04:01.385064Z K 7 svn:log V 195 MFC r227349,227513-227514: r227349: Document TI_SF_BUF_JUMBO and Xr altq. r227513: Document newly introduced a loader tunable and sysctl variables. r227514: Clarify hw.ti.%d.dac tunable. END K 10 svn:author V 8 rmacklem K 8 svn:date V 27 2012-01-04T00:24:09.844927Z K 7 svn:log V 321 MFC: r227690 The old NFS client will crash due to the reply being m_freem()'d twice if the server bogusly returns an error with the NFSERR_RETERR bit (bit 31) set. No actual NFS error has this bit set, but it seems that amd will sometimes do this. This patch makes sure the NFSERR_RETERR bit is cleared to avoid a crash. END K 10 svn:author V 8 rmacklem K 8 svn:date V 27 2012-01-04T00:51:05.681109Z K 7 svn:log V 482 MFC: r227690 The old NFS client will crash due to the reply being m_freem()'d twice if the server bogusly returns an error with the NFSERR_RETERR bit (bit 31) set. No actual NFS error has this bit set, but it seems that amd will sometimes do this. This patch makes sure the NFSERR_RETERR bit is cleared to avoid a crash. This is not exactly a merge, since the code is in sys/nfsclient/nfs_socket.c, which does not exist in head. Tested by: martin at lispworks.com PR: kern/153847 END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T01:38:52.032001Z K 7 svn:log V 320 MFC r227675: Partially revert r218788. r218788 removed calling dc_setcfg() for !DC_IS_ADMTEK in dc_miibus_statchg(). This change broke link establishment of Intel 21143 with dcphy(4) where it stuck in "ability detect" state without completing auto-negotiation. Also nuke dc_if_media as it's not actually used. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T01:45:52.482953Z K 7 svn:log V 320 MFC r227675: Partially revert r218788. r218788 removed calling dc_setcfg() for !DC_IS_ADMTEK in dc_miibus_statchg(). This change broke link establishment of Intel 21143 with dcphy(4) where it stuck in "ability detect" state without completing auto-negotiation. Also nuke dc_if_media as it's not actually used. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T01:53:53.936872Z K 7 svn:log V 320 MFC r227675: Partially revert r218788. r218788 removed calling dc_setcfg() for !DC_IS_ADMTEK in dc_miibus_statchg(). This change broke link establishment of Intel 21143 with dcphy(4) where it stuck in "ability detect" state without completing auto-negotiation. Also nuke dc_if_media as it's not actually used. END K 10 svn:author V 6 sbruno K 8 svn:date V 27 2012-01-04T02:01:27.253541Z K 7 svn:log V 63 IFC to head to catch up the bhyve branch Approved by: grehan@ END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-01-04T02:02:58.342622Z K 7 svn:log V 74 MFC r226482 - remove device keyword from makefs manpage Approved by: gjb END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-01-04T02:03:10.205906Z K 7 svn:log V 74 MFC r226482 - remove device keyword from makefs manpage Approved by: gjb END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-01-04T02:03:15.614562Z K 7 svn:log V 74 MFC r226482 - remove device keyword from makefs manpage Approved by: gjb END K 10 svn:author V 7 delphij K 8 svn:date V 27 2012-01-04T02:04:20.402803Z K 7 svn:log V 141 Document the fact that chroot(2) is no longer part of POSIX since SUSv3 and add a SECURITY CONSIDERATIONS section for recommended practices. END K 10 svn:author V 8 rmacklem K 8 svn:date V 27 2012-01-04T03:14:10.691363Z K 7 svn:log V 351 Add the function that does the GetDeviceInfo NFSv4.1 operation and stores the file layout in "struct nfsclfldevinfo". Also, add a function that can parse netaddr4 XDR structures for both IPv4 and IPv6, which is needed by nfsrpc_getdeviceinfo(). The nfsrpc_getdeviceinfo() function is not yet tested and it, plus "struct nfsclfldevinfo", could change. END K 10 svn:author V 6 eadler K 8 svn:date V 27 2012-01-04T03:37:41.597710Z K 7 svn:log V 129 MFC r227458, r226436: - change "is is" to "is" or "it is" - change "the the" to "the" - other typo fixes Approved by: lstewart END K 10 svn:author V 4 nyan K 8 svn:date V 27 2012-01-04T03:49:41.695504Z K 7 svn:log V 70 Fix 230MB MO support. Submitted by: Kaho Toshikazu MFC after: 1 week END K 10 svn:author V 4 nyan K 8 svn:date V 27 2012-01-04T03:54:30.453508Z K 7 svn:log V 133 MFi386: revision 229435 Add special loader environment variables 'comconsole_port' and 'comconsole_pcidev'. MFC after: 2 weeks END K 10 svn:author V 6 adrian K 8 svn:date V 27 2012-01-04T04:17:03.285360Z K 7 svn:log V 128 Add a couple more SPI flash device IDs found in commercial consumer wireless kit. Submitted by: Stefan Bethke END K 10 svn:author V 7 glebius K 8 svn:date V 27 2012-01-04T07:01:23.234665Z K 7 svn:log V 77 Use correct locking when traversing interface address list. Reviewed by: bz END K 10 svn:author V 3 pjd K 8 svn:date V 27 2012-01-04T07:04:43.911913Z K 7 svn:log V 111 Add an missing argument to open(2). If O_CREAT flag is specified, file permission has to be specified as well. END K 10 svn:author V 3 pjd K 8 svn:date V 27 2012-01-04T07:21:37.267925Z K 7 svn:log V 111 Add an missing argument to open(2). If O_CREAT flag is specified, file permission has to be specified as well. END K 10 svn:author V 3 pjd K 8 svn:date V 27 2012-01-04T07:25:10.718564Z K 7 svn:log V 193 Add missing file permission to open(O_CREAT) call. This doesn't really matter here, as we open /dev/null for test purposes, but it is useful for consistency and further grepping for such bugs. END K 10 svn:author V 7 fabient K 8 svn:date V 27 2012-01-04T07:33:06.888504Z K 7 svn:log V 122 Add missing MSR programming for some events. Submitted by: Davide Italiano MFC after: 3 days END K 10 svn:author V 7 fabient K 8 svn:date V 27 2012-01-04T07:58:36.499666Z K 7 svn:log V 134 Update PMC events from October 2011 Intel documentation. Submitted by: Davide Italiano MFC after: 3 days END K 10 svn:author V 7 fabient K 8 svn:date V 27 2012-01-04T08:14:05.198331Z K 7 svn:log V 76 MFC r228436: Add VIA microde update support to cpuctl(4) and cpucontrol(8). END K 10 svn:author V 7 fabient K 8 svn:date V 27 2012-01-04T08:47:00.820221Z K 7 svn:log V 78 MFC r228436: Add VIA microcode update support to cpuctl(4) and cpucontrol(8). END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T12:39:52.879571Z K 7 svn:log V 91 MFC r226833,r227056: Remove the long reprecated ``/stand/sysinstall'' from the init_path. END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T12:48:24.128373Z K 7 svn:log V 91 MFC r226833,r227056: Remove the long reprecated ``/stand/sysinstall'' from the init_path. END K 10 svn:author V 3 pho K 8 svn:date V 27 2012-01-04T12:54:35.602122Z K 7 svn:log V 42 MFC: r227527 Removed extra PRELE() call. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T13:23:51.564613Z K 7 svn:log V 160 Fix the SIOC[DG]LIFADDR ioctls in in_lifaddr_ioctl() to work with IPv4 interface address rather than IPv6. Submitted by: hrs Reviewed by: bz MFC after: 1 week END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T13:26:56.922769Z K 7 svn:log V 280 In the handling of the SIOC[DG]LIFADDR icotls in in_lifaddr_ioctl(), add missing interface address list locking and grab a reference on the matching interface address after dropping the lock while it is used to avoid a potential use after free. Reviewed by: bz MFC after: 1 week END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T13:29:26.323100Z K 7 svn:log V 43 Use a helper variable to wrap a long line. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T13:35:20.876436Z K 7 svn:log V 317 Use the mli_relinmhead list normally used to defer calls to in6m_release_locked() to defer calls to mld_v1_transmit_report() until after the IF_ADDR_LOCK is dropped. This removes a race where the lock is dropped and reacquired while attempting to walk an interface's address list. Reviewed by: bz MFC after: 1 week END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T13:49:46.003224Z K 7 svn:log V 138 Revert MFC r226833,227056. /stand exists in the MFS root used during a sysinstall-based install. Reported by: jhb Pointy hat to: pluknet END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T13:53:50.717928Z K 7 svn:log V 138 Revert MFC r226833,227056. /stand exists in the MFS root used during a sysinstall-based install. Reported by: jhb Pointy hat to: pluknet END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:02:00.619101Z K 7 svn:log V 55 MFC r227055: Remove a couple of write-only variables. END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:03:45.566805Z K 7 svn:log V 55 MFC r227055: Remove a couple of write-only variables. END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:06:17.345416Z K 7 svn:log V 55 MFC r227055: Remove a couple of write-only variables. END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:18:47.644426Z K 7 svn:log V 123 MFC r226882: Fix arguments list for proc:::signal-discard DTrace probe. Reported by: Anton Yuzhaninov END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:21:30.794838Z K 7 svn:log V 123 MFC r226882: Fix arguments list for proc:::signal-discard DTrace probe. Reported by: Anton Yuzhaninov END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:33:54.859196Z K 7 svn:log V 136 MFC r227447: struct timespec32: change types of tv_sec and tv_nsec fields to signed to match native struct timespec ABI on __LP32__. END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:34:45.632337Z K 7 svn:log V 136 MFC r227447: struct timespec32: change types of tv_sec and tv_nsec fields to signed to match native struct timespec ABI on __LP32__. END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:47:32.745376Z K 7 svn:log V 119 MFC r227792: Add history for setsockopt(2). PR: docs/162719 Submitted by: Niclas Zeising END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:49:29.263599Z K 7 svn:log V 119 MFC r227792: Add history for setsockopt(2). PR: docs/162719 Submitted by: Niclas Zeising END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T14:55:24.560973Z K 7 svn:log V 119 MFC r227792: Add history for setsockopt(2). PR: docs/162719 Submitted by: Niclas Zeising END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T15:58:35.927642Z K 7 svn:log V 247 MFC r228916: Clean up from the 4.x era. In an example of boot command: - rename wd(4) IDE disk drives name to ad(4) for the time being. - update the used kernel path "/kernel" to the current default. Bump .Dd for this and previous changes. END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2012-01-04T15:59:49.239045Z K 7 svn:log V 228 MFC r228916: Clean up from the 4.x era. In an example of boot command: - rename wd(4) IDE disk drives name to ad(4). - update the used kernel path "/kernel" to the current default. Bump .Dd for this and previous changes. END K 10 svn:author V 8 andreast K 8 svn:date V 27 2012-01-04T16:02:52.099634Z K 7 svn:log V 206 Introduce internal macros for __U/INT64_C to define the U/INT64_MAX/MIN values properly. The previous definition only worked if __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS were defined at the same time. END K 10 svn:author V 3 kib K 8 svn:date V 27 2012-01-04T16:04:20.242780Z K 7 svn:log V 428 Do not restart the scan in vm_object_page_clean() on the object generation change if requested mode is async. The object generation is only changed when the object is marked as OBJ_MIGHTBEDIRTY. For async mode it is enough to write each dirty page, not to make a guarantee that all pages are cleared after the vm_object_page_clean() returned. Diagnosed by: truckman Tested by: flo Reviewed by: alc, truckman MFC after: 2 weeks END K 10 svn:author V 8 andreast K 8 svn:date V 27 2012-01-04T16:07:16.210660Z K 7 svn:log V 55 Apply the same change as in r229494. Requested by: ed END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T16:20:55.775589Z K 7 svn:log V 624 MFC 225518,225793,227085: Allow the ipfw.ko module built with a kernel to honor any options defined in the kernel config. This more closely matches the behavior of other modules which inherit configuration settings from the kernel configuration during a kernel + modules build. Do not try to build the module in case of no INET support but keep #error calls for now in case we would compile it into the kernel. While here garbage collect unneeded opt_*.h includes. opt_ipdn.h is not used anywhere but we need to leave the DUMMYNET entry in options for conditional inclusion in kernel so keep the file with the same name. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T16:24:33.344756Z K 7 svn:log V 51 Remove unnecessary mergeinfo from these two files. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T16:26:45.580819Z K 7 svn:log V 321 MFC 226039: Ignore SRAT memory entries if the memory range does not overlap with an existing phys_avail[] entry. If a hw.physmem setting causes a memory domain to not be present in phys_avail[], the SRAT table will now be ignored rather than triggering a panic when a CPU in the missing domain tries to allocate a page. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T16:29:45.693067Z K 7 svn:log V 138 MFC 226364: Use PAIR32TO64() for the offset and length parameters to freebsd32_posix_fallocate() to properly handle big-endian platforms. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T16:39:39.606419Z K 7 svn:log V 194 MFC 226746: Consolidate duplicate definitions of V86_CY() and V86_ZR() which check for the carry and zero flags being set, respectively, in and use them throughout the x86 boot code. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T16:43:08.894887Z K 7 svn:log V 194 MFC 226746: Consolidate duplicate definitions of V86_CY() and V86_ZR() which check for the carry and zero flags being set, respectively, in and use them throughout the x86 boot code. END K 10 svn:author V 3 kib K 8 svn:date V 27 2012-01-04T16:43:29.225070Z K 7 svn:log V 721 MFC r228435: Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to rtld on 386 and amd64. MFC r228503: Postpone the resolution for irelative/ifunc right before initializers are called, and drop bind lock around calls to dispatcher. Use initlist to iterate over the objects instead of the ->next, due to drop of the bind lock in iteration. For i386/reloc.c:reloc_iresolve(), fix calculation of the dispatch function address for dso, by taking into account possible non-zero relocbase. MFC r228635 (by nwhitehorn): Fix RTLD on PowerPC after r228435. Changing the order of init_pltgot() caused the icache to be invalidated at the wrong time, resulting in an icache full of nonsense in the PLT section. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T16:45:12.219013Z K 7 svn:log V 876 MFC 226748: - Add a new header for the x86 boot code that defines various structures and constants related to the BIOS Enhanced Disk Drive Specification. - Use this header instead of magic numbers and various duplicate structure definitions for doing I/O. - Use an actual structure for the request to fetch drive parameters in drvsize() rather than a gross hack of a char array with some magic size. While here, change drvsize() to only pass the 1.1 version of the structure and not request device path information. If we want device path information you have to set the length of the device path information as an input (along with probably checking the actual EDD version to see which size one should use as the device path information is variable-length). This fixes data smashing problems from passing an EDD 3 structure to BIOSes supporting EDD 4. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T16:50:12.427225Z K 7 svn:log V 201 MFC 227069: Move the cleanup of f_cdevpriv when the reference count of a devfs file descriptor drops to zero out of _fdrop() and into devfs_close_f() as it is only relevant for devfs file descriptors. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T16:51:04.120570Z K 7 svn:log V 201 MFC 227069: Move the cleanup of f_cdevpriv when the reference count of a devfs file descriptor drops to zero out of _fdrop() and into devfs_close_f() as it is only relevant for devfs file descriptors. END K 10 svn:author V 6 sbruno K 8 svn:date V 27 2012-01-04T17:01:12.919714Z K 7 svn:log V 86 Update the byve console code with stubs for cngrab and cnungrab Reviewed by: grehan@ END K 10 svn:author V 3 kib K 8 svn:date V 27 2012-01-04T17:17:11.857556Z K 7 svn:log V 252 Postpone the resolution of IRELATIVE relocations and IFUNC-targeted relocations until tls is initialized and stacks permissions correctly set. This allows the ifunc to call malloc(3) and some other heavy services. Add debug banner. MFC after: 3 days END K 10 svn:author V 7 trociny K 8 svn:date V 27 2012-01-04T17:22:10.832500Z K 7 svn:log V 3149 MFC r225773, r225781, r225782, r225783, r225784, 225785, r225786, r225787, r225830, r225831, r225832, r225835, r226461, r226462, r226463, r226842, r226851, r226852, r226854, r226855, r226856, r226857, r226859, r226861, r228542, r228542, r228543, r228544, r228695, r228696: r225773 (pjd): Ensure that pjdlog functions don't modify errno. r225781 (pjd): No need to use KEEP_ERRNO() macro around pjdlog functions, as they don't modify errno. r225782 (pjd): Prefer PJDLOG_ASSERT() and PJDLOG_ABORT() over assert() and abort(). pjdlog versions will log problem to syslog when application is running in background. r225783 (pjd): Correct two mistakes when converting asserts to PJDLOG_ASSERT()/PJDLOG_ABORT(). r225784 (pjd): - Convert some impossible conditions into assertions. - Add missing 'if' in comment. r225785 (pjd): Prefer PJDLOG_ASSERT()/PJDLOG_ABORT() over assert(). r225786 (pjd): No need to wrap pjdlog functions around with KEEP_ERRNO() macro. r225787 (pjd): Use PJDLOG_ASSERT() and PJDLOG_ABORT() everywhere instead of assert(). r225830 (pjd): After every activemap change flush disk's write cache, so that write reordering won't make the actual write to be committed before marking the coresponding extent as dirty. It can be disabled in configuration file. If BIO_FLUSH is not supported by the underlying file system we log a warning and never send BIO_FLUSH again to that GEOM provider. r225831 (pjd): Break a bit earlier. r225832 (pjd): If the underlying provider doesn't support BIO_FLUSH, log it only once and don't bother trying in the future. r225835 (pjd): Correct typo. r226461 (pjd): When path to the configuration file is relative, obtain full path, so we can always find the file, even after daemonizing and changing working directory to /. r226462 (pjd): Remove redundant space. r226463 (pjd): Allow to specify pidfile in HAST configuration file. r226842 (pjd): Correct comments. r226851 (pjd): Delay resuid generation until first connection to secondary, not until first write. This way on first connection we will synchronize only the extents that were modified during the lifetime of primary node, not entire GEOM provider. r226852 (pjd): Minor cleanups. r226854 (pjd): - Eliminate the need for hio_nv. - Introduce hio_clear() function for clearing hio before returning it onto free queue. r226855 (pjd): Improve comment so it doesn't suggest race is possible, but that we handle the race. r226856 (pjd): Reduce indentation. r226857 (pjd): Minor cleanups. r226859 (pjd): Implement 'async' mode for HAST. r226861 (pjd): Remove redundant space. r228542 (pjd): Remove redundant setting of the error variable. Found by: Clang Static Analyzer r228543 (pjd): Simplify code by changing functions types from int to avoid, as the functions always return 0. Found by: Clang Static Analyzer r228544 (pjd): Remove redundant assignment. Found by: Clang Static Analyzer r228695 (pjd): Don't use function name as format string. Detected by: clang r228696 (pjd): Use lex's standard way of not generating unused function. Inspired by: r228555 END K 10 svn:author V 7 trociny K 8 svn:date V 27 2012-01-04T17:25:41.502852Z K 7 svn:log V 3185 MFC r219843, r225773, r225781, r225782, r225783, r225784, 225785, r225786, r225787, r225830, r225831, r225832, r225835, r226461, r226462, r226463, r226842, r226851, r226852, r226854, r226855, r226856, r226857, r226859, r226861, r228542, r228542, r228543, r228544, r228695, r228696: r219843 (pjd): Fix typo. r225773 (pjd): Ensure that pjdlog functions don't modify errno. r225781 (pjd): No need to use KEEP_ERRNO() macro around pjdlog functions, as they don't modify errno. r225782 (pjd): Prefer PJDLOG_ASSERT() and PJDLOG_ABORT() over assert() and abort(). pjdlog versions will log problem to syslog when application is running in background. r225783 (pjd): Correct two mistakes when converting asserts to PJDLOG_ASSERT()/PJDLOG_ABORT(). r225784 (pjd): - Convert some impossible conditions into assertions. - Add missing 'if' in comment. r225785 (pjd): Prefer PJDLOG_ASSERT()/PJDLOG_ABORT() over assert(). r225786 (pjd): No need to wrap pjdlog functions around with KEEP_ERRNO() macro. r225787 (pjd): Use PJDLOG_ASSERT() and PJDLOG_ABORT() everywhere instead of assert(). r225830 (pjd): After every activemap change flush disk's write cache, so that write reordering won't make the actual write to be committed before marking the coresponding extent as dirty. It can be disabled in configuration file. If BIO_FLUSH is not supported by the underlying file system we log a warning and never send BIO_FLUSH again to that GEOM provider. r225831 (pjd): Break a bit earlier. r225832 (pjd): If the underlying provider doesn't support BIO_FLUSH, log it only once and don't bother trying in the future. r225835 (pjd): Correct typo. r226461 (pjd): When path to the configuration file is relative, obtain full path, so we can always find the file, even after daemonizing and changing working directory to /. r226462 (pjd): Remove redundant space. r226463 (pjd): Allow to specify pidfile in HAST configuration file. r226842 (pjd): Correct comments. r226851 (pjd): Delay resuid generation until first connection to secondary, not until first write. This way on first connection we will synchronize only the extents that were modified during the lifetime of primary node, not entire GEOM provider. r226852 (pjd): Minor cleanups. r226854 (pjd): - Eliminate the need for hio_nv. - Introduce hio_clear() function for clearing hio before returning it onto free queue. r226855 (pjd): Improve comment so it doesn't suggest race is possible, but that we handle the race. r226856 (pjd): Reduce indentation. r226857 (pjd): Minor cleanups. r226859 (pjd): Implement 'async' mode for HAST. r226861 (pjd): Remove redundant space. r228542 (pjd): Remove redundant setting of the error variable. Found by: Clang Static Analyzer r228543 (pjd): Simplify code by changing functions types from int to avoid, as the functions always return 0. Found by: Clang Static Analyzer r228544 (pjd): Remove redundant assignment. Found by: Clang Static Analyzer r228695 (pjd): Don't use function name as format string. Detected by: clang r228696 (pjd): Use lex's standard way of not generating unused function. Inspired by: r228555 END K 10 svn:author V 5 luigi K 8 svn:date V 27 2012-01-04T19:37:25.510606Z K 7 svn:log V 278 remove some stale options (such as running without /boot/loader) improve support for multi-arch and cross-arch builds, by adding a suffix to the kernel config file and build_directory. (cross builds not clean yet, a cross-built kernel boots but fails when starting /sbin/init) END K 10 svn:author V 8 kensmith K 8 svn:date V 27 2012-01-04T19:38:35.889180Z K 7 svn:log V 845 The list of packages we will put on the 9.0-RELEASE DVD images was worked out a bit late so this won't make it into releng/9.0 or release/9.0.0 but it's worth committing to stable/9 for reference when 9.1-RELEASE rolls around. The new installer doesn't handle installing packages itself like sysinstall had done so in that respect packages are no longer as closely tied to doing an install. We'll provide a "disc1" image that has no packages on it at all. For the "dvd1" image there will be a /packages directory with the set of pre-built packages generated by this script (and all the dependencies of these packages...). The idea is to provide enough packages on the DVD for a user to get a minimal graphical workstation installed without needing to do a network based install if their network link is so-so... Discussed with: portmgr, re END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T19:43:53.185991Z K 7 svn:log V 25 Regen. Reminded by: kib END K 10 svn:author V 2 bz K 8 svn:date V 27 2012-01-04T19:50:10.952482Z K 7 svn:log V 107 MFC r221266: Introduce two new options MK_INET and MK_INET_SUPPORT analogically with INET6 equivalents. END K 10 svn:author V 2 bz K 8 svn:date V 27 2012-01-04T19:53:32.607151Z K 7 svn:log V 69 Regen src.conf(5) after merge of WITHOUT_INET{,_SUPPORT} in r229514. END K 10 svn:author V 3 pfg K 8 svn:date V 27 2012-01-04T20:05:38.551989Z K 7 svn:log V 79 Quiet down clang -Werror. Reported by: Pawel Worach Approved by: jhb (mentor) END K 10 svn:author V 3 dim K 8 svn:date V 27 2012-01-04T20:14:07.677780Z K 7 svn:log V 109 MFC r229183: In several llvm library Makefiles, remove extraneous slashes at the end of SRCDIR definitions. END K 10 svn:author V 7 rwatson K 8 svn:date V 27 2012-01-04T21:04:57.452156Z K 7 svn:log V 307 Adjust the VLAN section of the ifconfig(8) man page to better reflect reality: 1. Only 12-bit VLAN Identifiers, not full 16-bit VLAN tags can be set using ifconfig vlan. 2. When we mean VLAN Identifiers, spell it that way, rather than as VLAN tag. MFC after: 3 days Sponsored by: Adara Networks, Inc. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2012-01-04T21:14:22.657484Z K 7 svn:log V 90 Fix 'make clean' for this module so it cleans up the generated gssd.h. MFC after: 1 week END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T21:25:11.934735Z K 7 svn:log V 1182 MFC r227452: To send a frame, controller requires a prepended TX header and the length of frame should be treated as multiple of 4. Actual frame length is set in the TX header. The TX header position should be aligned on 4 byte boundary and actual frame start position should be aligned on 4 byte boundary as well. This means we need 4(TX header length) + 3(frame length fixup) additional free space in TX buffer in addition to actual frame length. Make sure TX handler check these additional bytes. ae_tx_avail_size() returns actual free space in TX buffer to ease the calculation of available TX buffer space in caller. While I'm here, replace magic number to appropriate sizeof operator to enhance readability. This change should fix controller lockup issue happened under certain conditions but it still does not fix watchdog timeout. It seems the watchdog timeout is side-effect of TxS and TxD mismatches. The root cause of TxD/TxD mismatch is not known yet but it looks like silicon bug. I guess driver may have to reinitialize controller whenever it sees TxS and TxD mismatches but leave it as it was at this moment. PR: kern/145918 END K 10 svn:author V 7 rwatson K 8 svn:date V 27 2012-01-04T21:26:47.578188Z K 7 svn:log V 91 Add missing -w to kgdb(1)'s usage(). Sponsored by: Adara Networks, Inc. MFC after: 3 days END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T21:27:03.450079Z K 7 svn:log V 1182 MFC r227452: To send a frame, controller requires a prepended TX header and the length of frame should be treated as multiple of 4. Actual frame length is set in the TX header. The TX header position should be aligned on 4 byte boundary and actual frame start position should be aligned on 4 byte boundary as well. This means we need 4(TX header length) + 3(frame length fixup) additional free space in TX buffer in addition to actual frame length. Make sure TX handler check these additional bytes. ae_tx_avail_size() returns actual free space in TX buffer to ease the calculation of available TX buffer space in caller. While I'm here, replace magic number to appropriate sizeof operator to enhance readability. This change should fix controller lockup issue happened under certain conditions but it still does not fix watchdog timeout. It seems the watchdog timeout is side-effect of TxS and TxD mismatches. The root cause of TxD/TxD mismatch is not known yet but it looks like silicon bug. I guess driver may have to reinitialize controller whenever it sees TxS and TxD mismatches but leave it as it was at this moment. PR: kern/145918 END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T21:28:49.702231Z K 7 svn:log V 1182 MFC r227452: To send a frame, controller requires a prepended TX header and the length of frame should be treated as multiple of 4. Actual frame length is set in the TX header. The TX header position should be aligned on 4 byte boundary and actual frame start position should be aligned on 4 byte boundary as well. This means we need 4(TX header length) + 3(frame length fixup) additional free space in TX buffer in addition to actual frame length. Make sure TX handler check these additional bytes. ae_tx_avail_size() returns actual free space in TX buffer to ease the calculation of available TX buffer space in caller. While I'm here, replace magic number to appropriate sizeof operator to enhance readability. This change should fix controller lockup issue happened under certain conditions but it still does not fix watchdog timeout. It seems the watchdog timeout is side-effect of TxS and TxD mismatches. The root cause of TxD/TxD mismatch is not known yet but it looks like silicon bug. I guess driver may have to reinitialize controller whenever it sees TxS and TxD mismatches but leave it as it was at this moment. PR: kern/145918 END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T21:50:59.103092Z K 7 svn:log V 1186 MFC r227582: Enable 64bit DMA addressing support for all msk(4) controllers. Unnecessarily complex LE format used on Marvell controller was main reason not to enable 64bit DMA addressing in driver. If high 32bit address of DMA address of TX/RX buffer is changed, driver has to generate a new LE. In TX path, driver will keep track of lastly used high 32bit address of DMA address and generate a new LE whenever it sees high address change in the DMA address. In RX path, driver will always use two LEs to specify 64bit DMA address of RX buffer. If the high 32bit address of DMA address of RX buffer is the same as previous DMA address of RX buffer, driver does not have to use two LEs but driver will use two LEs for simplicity in RX ring management. One of draw back for switching to 64bit DMA addressing is that the large amount of LEs are used to specify 64bit DMA address such that number of available LEs for TX/RX buffers are considerably reduced. To mitigate the issue, increase number of available LEs from 256 to 384 for TX and from 256 to 512 for RX. For 32bit architectures, msk(4) does not use 64bit DMA addressing to save resources. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T21:52:56.568610Z K 7 svn:log V 1186 MFC r227582: Enable 64bit DMA addressing support for all msk(4) controllers. Unnecessarily complex LE format used on Marvell controller was main reason not to enable 64bit DMA addressing in driver. If high 32bit address of DMA address of TX/RX buffer is changed, driver has to generate a new LE. In TX path, driver will keep track of lastly used high 32bit address of DMA address and generate a new LE whenever it sees high address change in the DMA address. In RX path, driver will always use two LEs to specify 64bit DMA address of RX buffer. If the high 32bit address of DMA address of RX buffer is the same as previous DMA address of RX buffer, driver does not have to use two LEs but driver will use two LEs for simplicity in RX ring management. One of draw back for switching to 64bit DMA addressing is that the large amount of LEs are used to specify 64bit DMA address such that number of available LEs for TX/RX buffers are considerably reduced. To mitigate the issue, increase number of available LEs from 256 to 384 for TX and from 256 to 512 for RX. For 32bit architectures, msk(4) does not use 64bit DMA addressing to save resources. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T21:54:20.021498Z K 7 svn:log V 1186 MFC r227582: Enable 64bit DMA addressing support for all msk(4) controllers. Unnecessarily complex LE format used on Marvell controller was main reason not to enable 64bit DMA addressing in driver. If high 32bit address of DMA address of TX/RX buffer is changed, driver has to generate a new LE. In TX path, driver will keep track of lastly used high 32bit address of DMA address and generate a new LE whenever it sees high address change in the DMA address. In RX path, driver will always use two LEs to specify 64bit DMA address of RX buffer. If the high 32bit address of DMA address of RX buffer is the same as previous DMA address of RX buffer, driver does not have to use two LEs but driver will use two LEs for simplicity in RX ring management. One of draw back for switching to 64bit DMA addressing is that the large amount of LEs are used to specify 64bit DMA address such that number of available LEs for TX/RX buffers are considerably reduced. To mitigate the issue, increase number of available LEs from 256 to 384 for TX and from 256 to 512 for RX. For 32bit architectures, msk(4) does not use 64bit DMA addressing to save resources. END K 10 svn:author V 8 brueffer K 8 svn:date V 27 2012-01-04T21:56:47.423810Z K 7 svn:log V 46 MFC: r228898 Add missing -l flag to usage(). END K 10 svn:author V 8 brueffer K 8 svn:date V 27 2012-01-04T21:57:11.723339Z K 7 svn:log V 46 MFC: r228898 Add missing -l flag to usage(). END K 10 svn:author V 7 yongari K 8 svn:date V 27 2012-01-04T22:53:18.045265Z K 7 svn:log V 881 MFC r227587,227590-227591,227593,227638-227639: r227587: Add preliminary support for RTL8402 PCIe FastEthernet with integrated card reader. r227590: Add preliminary support for RTL8411 PCIe Gigabit ethernet with integrated card reader. r227591: Add missing driver lock in SIOCSIFCAP handler. r227593: Disable PCIe ASPM (Active State Power Management) for all controllers. More and more RealTek controllers started to implement EEE feature. Vendor driver seems to load a kind of firmware for EEE with additional PHY fixups. It is known that the EEE feature may need ASPM support. Unfortunately there is no documentation for EEE of the controller so enabling ASPM may cause more problems. r227638: Add preliminary support for second generation RTL8105E PCIe FastEthernet. r227639: Add preliminary support for RTL8168/8111F PCIe Gigabit ethernet. END