aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* MFC r227342. Note that the original commit message, reproduced below, hasRyan Stone2011-11-251-1/+1
| | | | | | | | | | | | | | | | error. The final sentence should read "*without* CTF data". The in-kernel CTF parser caches the result of its first attempt to parse CTF data from a module. On subsequent attempts to retrieve CTF data for a module, return an error if there no CTF data. This fixes a panic if you try to enable fbt probes on a module with CTF data twice. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227969
* MFC r227805:Bernhard Schmidt2011-11-252-1/+29
| | | | | | | | | | | | | | | The DC calibration result obtained during initialization can't be passed over to the runtime firmware on 6050 devices. Instead let the runtime firmware do the calibration itself. This fixes support for the 6050 series devices. Submitted by: kevlo Approved by: re (kib) Obtained from: OpenBSD Tested by: lx, Tz-Huan Huang(earlier version) Notes: svn path=/releng/9.0/; revision=227968
* MFC r227930:Michael Tuexen2011-11-241-1/+1
| | | | | | | | | | Move up the address to the top of the sctp_paddrthlds structure like in all other structures. This avoids alignment problems. Approved by: re@ Notes: svn path=/releng/9.0/; revision=227949
* MFC r227290 and r227291:Ryan Stone2011-11-247-24/+33
| | | | | | | | | | | | | | | | | | r227290: Fix the DTrace pid return trap interrupt vector. Previously we were using 31, but that vector is reserved. Without this fix, running dtrace -p <pid> would either cause the target process to crash or the kernel to page fault r227291: Replace fasttrap_copyout() with uwrite(). FreeBSD copyout() is not able to write to the .text section of a process. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227946
* MFC r227540:Michael Tuexen2011-11-241-16/+26
| | | | | | | | | | Set the MTU of an path to an approriate value if the interface MTU can't be determined. Approved by: re@ Notes: svn path=/releng/9.0/; revision=227943
* MFC r227486:Michael Tuexen2011-11-241-15/+5
| | | | | | | | | | Don't copy uninitialized memory. Also simplify the comparison of interface names. Approved by: re@ Notes: svn path=/releng/9.0/; revision=227941
* MFC r227110,r227111:Pawel Jakub Dawidek2011-11-241-0/+8
| | | | | | | | | | | | | | | | | | | | | | r227110: In zvol_open() if the spa_namespace_lock is already held, it means that ZFS is trying to open and taste ZVOL as its VDEV. This is not supported, so return an error instead of panicing on spa_namespace_lock recursion. Reported by: Robert Millan <rmh@debian.org> PR: kern/162008 r227111: Correct typo in comment. Reported by: Fabian Keil <fk@fabiankeil.de> Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227927
* MFC r225849:Xin LI2011-11-231-0/+8
| | | | | | | | | | | | | | | | Test if the interface is afif in dhcpif() and syncdhcpif(), as done in ipv6_autoconfif. This fixes a regression that causes e.g. ifconfig_DEFAULT="DHCP" to run on non-afif interfaces like pfsync0, which in turn would cause excessive delay on system startup. Sponsored by: iXsystems, Inc. Reviewed by: hrs (freebsd-rc@) Approved by: re (bz) Notes: svn path=/releng/9.0/; revision=227910
* MFC r226938 (by kevlo):Bjoern A. Zeeb2011-11-231-1/+5
| | | | | | | | | Add missing PF_UNLOCK in pf_test Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227899
* MFC r227061 (by mlaier):Bjoern A. Zeeb2011-11-231-12/+14
| | | | | | | | | Fix a use-after-free/redzone issue in the routing code. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227895
* MFC r227547:Bjoern A. Zeeb2011-11-231-1/+1
| | | | | | | | | | | | | | | | | The maximum TSO frame size should be: maximum IP datagram size (65535 bytes) + Ethernet header size (14 bytes) + 2 * VLAN tag size (4 bytes) [1]. [1] We need to multiply by 2 to account for the double VLAN tag provision added in IEEE 802.1ad. Submitted by: David Somayajulu (david.somayajulu qlogic.com) Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227892
* MFC r227058:Attilio Rao2011-11-231-0/+12
| | | | | | | | | | | Disable interrupt and preemption for smp_rendezvous() also in the UP/!SMP case. Sponsored by: Sandvine Incorporated Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227889
* MFC r227481:Bjoern A. Zeeb2011-11-231-1/+1
| | | | | | | | | | | Return the correct value for the IPV6_MULTICAST_HOPS getsockopt() call. Submitted by: rpaulo Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227887
* MFC r227657:Konstantin Belousov2011-11-232-2/+7
| | | | | | | | | | | | Consistently use process spin lock for protection of the p->p_boundary_count. Race could cause the execve(2) from the threaded process to hung since thread boundary counter was incorrect and single-threading never finished. Approved by: re (bz) Notes: svn path=/releng/9.0/; revision=227886
* MFC r227769, 227770, 227771:Glen Barber2011-11-231-2/+4
| | | | | | | | | | | | | | | | - Add a note to src/Makefile that explains that 'rm' runs twice because thesecond invocation only needs to operate on files with the immutable flag set. - Fix the note in r227769 to be less specific to the immutable flag. - Replace 'chflags' with 'file flags' in a comment, since 'chflags'is a command, not a flag itself. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227880
* MFC r227604:David Xu2011-11-231-3/+2
| | | | | | | | | | | Pass CVWAIT flags to kernel, this should handle Timeout correctly for pthread_cond_timedwait when it uses kernel-based condition variable. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227877
* MFC: r227742Christian Brueffer2011-11-201-0/+2
| | | | | | | | | Add 2010 and 2011 copyrights. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227766
* MFC: r227466, r227480, r227516Christian Brueffer2011-11-201-0/+4
| | | | | | | | | Add mps(4) and mvs(4) to the hardware notes. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227764
* MFC: r227275Christian Brueffer2011-11-202-0/+3
| | | | | | | | | Add qlxgb(4) to the hardware notes. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227762
* MFC: r227465, r227515Christian Brueffer2011-11-191-13/+15
| | | | | | | | | | | - Grammar and mdoc cleanup. - Remove list nesting in the hardware notes section, thus making it compatible with the hardware notes generation script. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227733
* MFC: r227578Marius Strobl2011-11-191-1/+1
| | | | | | | | | Fix compilation with DEBUG defined. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227719
* MFC: r227539Marius Strobl2011-11-191-0/+10
| | | | | | | | | | | | Define curthread as an inline function that loads the thread pointer directly from g7, the pcpu pointer. This guarantees correct behavior when the thread migrates to a different CPU. Commit message stolen from r205431. Additional testing by Peter Jeremy. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227715
* MFC: r227537Marius Strobl2011-11-197-51/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | As it turns out, r186347 actually is insufficient to avoid the use of the curthread-accessing part of mtx_{,un}lock(9) when using a r210623-style curthread implementation on sparc64, crashing the kernel in its early cycles as PCPU isn't set up, yet (and can't be set up as OFW is one of the things we need for that, which leads to a chicken-and-egg problem). What happens is that due to the fact that the idea of r210623 actually is to allow the compiler to cache invocations of curthread, it factors out obtaining curthread needed for both mtx_lock(9) and mtx_unlock(9) to before the branch based on kobj_mutex_inited when compiling the kernel without the debugging options. So change kobj_class_compile_static(9) to just never acquire kobj_mtx, effectively restricting it to its documented use, and add a kobj_init_static(9) for initializing objects using a class compiled with the former and that also avoids using mutex(9) (and malloc(9)). Also assert in both of these functions that they are used in their intended way only. While at it, inline kobj_register_method() and kobj_unregister_method() as there wasn't much point for factoring them out in the first place and so that a reader of the code has to figure out the locking for fewer functions missing a KOBJ_ASSERT. Tested on powerpc{,64} by andreast. Reviewed by: nwhitehorn (earlier version), jhb Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227712
* MFC r226549,r226550,r226551,r226552,r226553,r226554,r226568,r226569,r226611,Pawel Jakub Dawidek2011-11-196-108/+278
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r226612: r226549: Remove redundant size calculation. r226550: Initialize 'rc' properly before using it. This error could lead to infinite loop when data reconstruction was needed. r226551: Don't mark vdev as healthy too soon, so we won't try to use invalid vdevs. r226552: Never pass NULL block pointer when reading. This is neither expected nor handled by lower layers like vdev_raidz, which uses bp for checksum verification. This bug could lead to NULL pointer reference and resets during boot. r226553: Always pass data size for checksum verification function, as using physical block size declared in bp may not always be what we want. For example in case of gang block header physical block size declared in bp is much larger than SPA_GANGBLOCKSIZE (512 bytes) and checksum calculation failed. This bug could lead to accessing unallocated memory and resets/failures during boot. r226554: Fix missing return when LOADER_GPT_SUPPORT is defined, but LOADER_MBR_SUPPORT is not. r226568: - Correctly read gang header from raidz. - Decompress assembled gang block data if compressed. - Verify checksum of a gang header. - Verify checksum of assembled gang block data. - Verify checksum of uber block. Submitted by: avg r226569: With LOADER_MBR_SUPPORT defined and LOADER_GPT_SUPPORT undefined we would never call disk_openmbr(). Submitted by: avg r226611: - Allow to specify multiple files to check, eg. zfsboottest gpt/system0 gpt/system1 - /boot/kernel/kernel /boot/zfsloader - Instead of printing file's content calculate MD5 hash of the file, so it can be easly compared to the hash calculated via file system. - Some other minor improvements. r226612: Because ZFS boot code was very fragile in the past and real PITA to debug, introduce zfsboottest.sh script that will verify if it will be possible to boot from the given pool. # zfsboottest.sh system Where "system" is pool name of the pool we want to boot from. What is being verified by the script: - Does the pool exist? - Does it have bootfs property configured? - Is mountpoint property of the boot dataset set to 'legacy'? Dataset configured in bootfs property has to be mounted to perform more checks: - Does the /boot directory in boot dataset exist? - Is this dataset configured as root file system in /etc/fstab or set in vfs.root.mountfrom variable in /boot/loader.conf? By using zfsboottest tool the script will read all the files in /boot directory using ZFS boot code and calculate their checksums. Then, it will walk /boot directory using find(1) though regular file sytem and also read all the files in /boot directory and calculate their checksums. If any of the files cannot be looked up, read or checksum is invalid it will be reported and booting off of this pool is probably not possible. Some additional checks may be interesting as well. For example if the disks contain proper pmbr and gptzfsboot code or if all expected files in /boot/ are present. When upgrading FreeBSD, one should snapshot datasets that contain operating system, upgrade (install new world and kernel) and use zfsboottest.sh to verify if it will be possible to boot from new configuration. If all is good one should upgrade boot blocks, by eg.: # gpart -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1 If something is wrong, one should rollback datasets and report the problems. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227710
* MFC r226613,r226615,r226616:Pawel Jakub Dawidek2011-11-193-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | r226613: libzpool task_alloc: pass only valid flags to kmem_alloc tqflags may contain other flags besided those that are suitable for kmem_alloc == umem_alloc Submitted by: avg r226615: thr_create: new_thread_ID may be NULL Submitted by: avg r226616: zdb: access dp_free_bpobj only if pool version is >= SPA_VERSION_DEADLISTS Submitted by: avg Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227709
* MFC r226617:Pawel Jakub Dawidek2011-11-191-8/+10
| | | | | | | | | | | | | zfs vdev_file_io_start: validate vdev before using vdev_tsd vdev_tsd can be NULL for certain vdev states. At least in userland testing with ztest. Submitted by: avg Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227708
* MFC r226620:Pawel Jakub Dawidek2011-11-192-2/+9
| | | | | | | | | | | | | Update per-thread I/O statistics collection in ZFS. This allows to see processes I/O activity in 'top -m io' output. PR kern/156218 Reported by: Marcus Reid <marcus@blazingdot.com> Patch by: avg Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227707
* MFC r227416:Doug Barton2011-11-181-1/+3
| | | | | | | | | Document that flock can return ENOLCK Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227682
* MFC r226863:Doug Barton2011-11-181-3/+7
| | | | | | | | | | | Fix svnversion for svn 1.7.x by not looking for .svn in ${SYSDIR} (since it no longer exists). Instead, run svnversion if we can find the binary and test that the output looks like a version string. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227678
* MFC r227391:Fabien Thomas2011-11-181-2/+4
| | | | | | | | | | | | | | | | Import gcc fix for -fstack-protector that produces segfaulting binaries on arm/armel. Related gcc bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35965 Author kindly accepted that all of his patches can be use as GPLv2. PR: 161128 Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227665
* MFC: r227059Rick Macklem2011-11-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Both a crash reported on freebsd-current on Oct. 18 under the subject heading "mtx_lock() of destroyed mutex on NFS" and PR# 156168 appear to be caused by clnt_dg_destroy() closing down the socket prematurely. When to close down the socket is controlled by a reference count (cs_refs), but clnt_dg_create() checks for sb_upcall being non-NULL to decide if a new socket is needed. I believe the crashes were caused by the following race: clnt_dg_destroy() finds cs_refs == 0 and decides to delete socket clnt_dg_destroy() then loses race with clnt_dg_create() for acquisition of the SOCKBUF_LOCK() clnt_dg_create() finds sb_upcall != NULL and increments cs_refs to 1 clnt_dg_destroy() then acquires SOCKBUF_LOCK(), sets sb_upcall to NULL and destroys socket This patch fixes the above race by changing clnt_dg_destroy() so that it acquires SOCKBUF_LOCK() before testing cs_refs. Tested by: bz Reviewed by: dfr Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227631
* MFC: r227448Christian Brueffer2011-11-171-2/+2
| | | | | | | | | | Reword a sentence in the HARDWARE section a little to make it more suitable for automatic hardware notes generation. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227620
* MFC: r227276Christian Brueffer2011-11-171-1/+2
| | | | | | | | | Add qlxgb(4). Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227618
* MFC: r227271Christian Brueffer2011-11-171-1/+1
| | | | | | | | | Write QLogic consistently. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227616
* MFC r227112:Dimitry Andric2011-11-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | Whenever you boot with nfsv4_server_enable=NO (the default) in rc.conf, the /etc/rc.d/nfsd script sets vfs.nfsd.server_max_nfsvers to 3. Then, when you set nfsv4_server_enable=YES in rc.conf, and restart nfsd via the rc.d script, without rebooting, the sysctl does *not* get reset to max version 4, so NFSv4 still doesn't work. Fix this by explicitly setting vfs.nfsd.server_max_nfsvers to 4 when NFSv4 is requested. I also added resetting of the nfs_privport sysctls, since this has the same issue: nfs_reserved_port_only=YES in rc.conf sets the nfs_privport sysctl to 1, but in the other case, the sysctl doesn't get reset to 0. Reviewed by: rmacklem Silence from: rc@ Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227608
* MFC r226679:Bernhard Schmidt2011-11-161-0/+1
| | | | | | | | | | | | | Let net80211 also know about stopped BA sessions. This fixes some issues where the driver assumed that BA resources are still available due to net80211 saying so. PR: 161407, 159768 Tested by: cperciva, rene Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227571
* MFC r226404:Eitan Adler2011-11-161-0/+33
| | | | | | | | | | | | - add support for I-O DATA RSA-PCI2/R PR: kern/142999 Submitted by: Takefu Kenji <takefu@airport.fm> Approved by: jhb Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227566
* MFC r227272:Andrey V. Elsukov2011-11-162-37/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | Add reference to gpart(8). MFC r227280: Initialize "acc" value inside the loop to reset failed attempts. PR: misc/162262 MFC r227292: Improve error reporting when MBR can not be written. Remove obsolete code which uses DIOCSMBR ioctl. When writing MBR first check that GEOM_MBR is available, if it is not available, then try write MBR directly to provider. If both are failed, then recommend to use gpart(8). MFC r227295: Fix multi-line comment formatting. Pointed by: jh Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227561
* MFC rr227273:Andrey V. Elsukov2011-11-161-0/+1
| | | | | | | | | Add reference to gpart(8). Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227559
* MFC r227231:Andrey V. Elsukov2011-11-161-17/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To be in sync with GEOM_PART_BSD limit the maximum number of supported partitions to 20. MFC r227248: bsdlabel(8) could automatically fill many of disklabel's deprecated fields, but user could specify some of those fields when edits disklabel with `bsdlabel -e`. But without -A flag these fields might be overwritten with default values from the virgin disklabel. So, don't overwrite such fields if they are not zero. Also add checks to prevent creating disklabel with less than DEFPARTITIONS and more than MAXPARTITIONS partitions. PR: bin/162332 Tested by: Eugene Grosbein MFC r227262: Remove unneeded checks. MFC r227270: Add recommendation to use gpart(8) when user tries write disklabel or bootcode to already opened provider. MFC r227296: Fix multi-line comment formatting. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227557
* MFC r227274:Andrey V. Elsukov2011-11-161-17/+3
| | | | | | | | | | | | | Add reference to gpart(8). MFC r227298: Remove a note about disabling of GEOM protection mechanism. boot0cfg should work without such hack. Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227554
* MFC r227409:Xin LI2011-11-151-0/+6
| | | | | | | | | | | | | | | Do a dummy read to flush the interrupt ACK that we just performed, ensuring that everything is really, truly consistent. This fixes certain cases where one will see various: mfi0: COMMAND 0xffffffXXXXXXXXXX TIMEOUT AFTER XX SECONDS Submitted by: scottl Ok'ed by: jhb Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227534
* MFS r227450 (MFC r227449):Mikolaj Golub2011-11-111-1/+1
| | | | | | | | | | | | | Fix false positive EADDRINUSE that could be returned by bind, due to the typo made in r227207. Reported by: kib Tested by: kib Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227451
* MFC r227204, 227206, 227207:Mikolaj Golub2011-11-105-29/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r227204: Fix the typo made in r157474. r227206: Before dereferencing intotw() check for NULL, the same way as it is done for in_pcb (see r157474). r227207: Cache SO_REUSEPORT socket option in inpcb-layer in order to avoid inp_socket->so_options dereference when we may not acquire the lock on the inpcb. This fixes the crash due to NULL pointer dereference in in_pcbbind_setup() when inp_socket->so_options in a pcb returned by in_pcblookup_local() was checked. Reported by: dave jones <s.dave.jones@gmail.com>, Arnaud Lacombe <lacombar@gmail.com> Suggested by: rwatson Glanced by: rwatson Tested by: dave jones <s.dave.jones@gmail.com> Approved by: re (kib) Notes: svn path=/stable/9/; revision=227428
* MFC 227320:Michael Tuexen2011-11-101-35/+46
| | | | | | | | | | When loading addresses from INITs, always use the correct local address. Approved by: re@ Notes: svn path=/stable/9/; revision=227426
* MFC 227266:Michael Tuexen2011-11-101-0/+4
| | | | | | | | | Initialize all components of the sent COOKIE. Approved by: re@ Notes: svn path=/stable/9/; revision=227424
* Back out r226299 (MFC of r226105) which caused a number of portsAndre Oppermann2011-11-101-7/+0
| | | | | | | | | | | that depend on the incorrect IP length field. The fix stays in HEAD and ports should test for it. Requested by: glebius Approved by: re (kib) Notes: svn path=/stable/9/; revision=227423
* MFC r226740Alan Cox2011-11-101-18/+72
| | | | | | | | | | Speed up vm_page_cache() and vm_page_remove() by checking for a few common cases that can be handled in constant time. Approved by: re (kib) Notes: svn path=/stable/9/; revision=227420
* MFC r226971Peter Holm2011-11-091-0/+9
| | | | | | | | | Added missing cache purge of from argument. Approved by: re (kensmith) Notes: svn path=/stable/9/; revision=227402
* MFC 226748:John Baldwin2011-11-096-31/+129
| | | | | | | | | | | | | | | | | | | | | - 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. Approved by: re (kib) Notes: svn path=/stable/9/; revision=227400