ariff [Sun, 25 Feb 2007 06:17:56 +0000 (06:17 +0000)]
Fix ALC883 microphone / recording issues. Setting high(er) VRef on
(external) microphone pin tend to screw it. Internal microphone (found
on several laptops) still need high VRef.
Tested by: Pietro Cerutti <pietro.cerutti@gmail.com>
lenix <irc.freenode.net>
alc [Sun, 25 Feb 2007 06:14:58 +0000 (06:14 +0000)]
Change the way that unmanaged pages are created. Specifically,
immediately flag any page that is allocated to a OBJT_PHYS object as
unmanaged in vm_page_alloc() rather than waiting for a later call to
vm_page_unmanage(). This allows for the elimination of some uses of
the page queues lock.
Change the type of the kernel and kmem objects from OBJT_DEFAULT to
OBJT_PHYS. This allows us to take advantage of the above change to
simplify the allocation of unmanaged pages in kmem_alloc() and
kmem_malloc().
sam [Sat, 24 Feb 2007 23:12:58 +0000 (23:12 +0000)]
set the antenna switch when fixing the tx antenna using the
dev.ath.X.txantenna sysctl; this is typically what folks
want but beware this has the side effect of disabling rx
diversity
bms [Sat, 24 Feb 2007 21:58:30 +0000 (21:58 +0000)]
Use sysctl(2), not kvm(3), to read IPv6 multicast information from
the running system.
Use the name 'IPv6 Forwarding Table', not 'IPv6 Routing Table', to be
consistent with what the code actually does and is.
bms [Sat, 24 Feb 2007 21:09:35 +0000 (21:09 +0000)]
Fix tinderbox. ip6_mrouter should be defined in raw_ip6.c as it is
tested to determine if the userland socket is open; this, in turn, is
used to determine if the module has been loaded.
bms [Sat, 24 Feb 2007 11:38:47 +0000 (11:38 +0000)]
Make IPv6 multicast forwarding dynamically loadable from a GENERIC kernel.
It is built in the same module as IPv4 multicast forwarding, i.e. ip_mroute.ko,
if and only if IPv6 support is enabled for loadable modules.
Export IPv6 forwarding structs to userland netstat(1) via sysctl(9).
scottl [Fri, 23 Feb 2007 22:53:56 +0000 (22:53 +0000)]
Fix a case in rman_manage_region() where the resource list would get missorted.
This would in turn confuse rman_reserve_resource(). This was only seen for
MSI resources that can get allocated and deallocated after boot.
netchild [Fri, 23 Feb 2007 22:39:26 +0000 (22:39 +0000)]
MFp4 (114193 (i386 part), 114194, 114195, 114200):
- Dont "return" in linux_clone() after we forked the new process in a case
of problems.
- Move the copyout of p2->p_pid outside the emul_lock coverage in
linux_clone().
- Cache the em->pdeath_signal in a local variable and move the copyout
out of the emul_lock coverage.
- Move the free() out of the emul_shared_lock coverage in a preparation
to switch emul_lock to non-sleepable lock (mutex).
mjacob [Fri, 23 Feb 2007 21:59:21 +0000 (21:59 +0000)]
Don't attempt to load illegal hard loop addresses into
an ICB. This shows up on card restarts, and usually for
2200-2300 cards. What happens is that we start up,
attempting to acquire a hard address. We end up instead
being an F-port topology, which reports out a loop id
of 0xff (or 0xffff for 2K Login f/w). Then, if we restart,
we end up telling the card to go off an acquire this loop
address, which the card then rejects. Bah.
brian [Fri, 23 Feb 2007 20:23:35 +0000 (20:23 +0000)]
Account for di_blocks allocations when IN_SPACECOUNTED is set in an
inode's i_flag.
It's possible that after ufs_infactive() calls softdep_releasefile(),
i_nlink stays >0 for a considerable amount of time (> 60 seconds here).
During this period, any ffs allocation routines that alter di_blocks
must also account for the blocks in the filesystem's fs_pendingblocks
value.
This change fixes an eventual df/du discrepency that will happen as
the result of fs_pendingblocks being reduced to <0.
The only manifestation of this that people may recognise is the
following message on boot:
/somefs: update error: blocks -N files M
at which point the negative pending block count is adjusted to zero.
jhb [Fri, 23 Feb 2007 19:46:59 +0000 (19:46 +0000)]
Drop the global kernel linker lock while executing the sysinit's for a
freshly-loaded kernel module. To avoid various unload races, hide linker
files whose sysinit's are being run from userland so that they can't be
kldunloaded until after all the sysinit's have finished.
ariff [Fri, 23 Feb 2007 19:41:16 +0000 (19:41 +0000)]
- Revert arguments for several functions to pre bus_get_dma_tag()
changes. Each softc contains information about their own device_t,
use that instead.
- bus_setup_intr() -> snd_setup_intr().
ariff [Fri, 23 Feb 2007 19:40:13 +0000 (19:40 +0000)]
- Compile time compatibility for pre/post newbus API (intr filter)
changes. This should ease the job of maintaining codebase since much
of the regression tests are done across os versions.
- bus_setup_intr() -> snd_setup_intr().
jhb [Fri, 23 Feb 2007 16:25:08 +0000 (16:25 +0000)]
Use 'pause' in several places rather than trying to tsleep() on NULL (which
triggers a KASSERT) or local variables. In the case of kern_ndis, the
tsleep() actually used a common sleep address (curproc) making it
susceptible to a premature wakeup.
jhb [Fri, 23 Feb 2007 16:22:09 +0000 (16:22 +0000)]
Add a new kernel sleep function pause(9). pause(9) is for places that
want an equivalent of DELAY(9) that sleeps instead of spins. It accepts
a wmesg and a timeout and is not interrupted by signals. It uses a private
wait channel that should never be woken up by wakeup(9) or wakeup_one(9).
mjacob [Fri, 23 Feb 2007 05:51:57 +0000 (05:51 +0000)]
Use the new xpt_rescan function to truly now have dynamic
attachment of new devices that arrive (and we notice them
via async Fibre Channel events). We've always had the
right thing (of sorts) happen when devices go away- this
is the corollary function that makes multipath failover
actually work.
mjacob [Fri, 23 Feb 2007 05:47:36 +0000 (05:47 +0000)]
Add an xpt_rescan function and a thread that will field
rescan requests. The purpose of this is to allow a SIM
(or other entities) to request a bus rescan and have it
then fielded in a different (process) context from the
caller.
There are probably better ways to accomplish this, but
it's a very small change that helps solve a number of
problems.
Reviewed by: Justin, Ken and Scott.
MFC after: 2 weeks
mjacob [Fri, 23 Feb 2007 05:42:41 +0000 (05:42 +0000)]
There is a problem in setting/getting 'options'- if we check things
early, we haven't set board type, so we can't correctly check for
some options. Fix this by splitting option setting/getting into
generic, pci and then later board specific, option setting/getting.
This was noticed when setting 'iid' (or 'hard loop id') didn't work
all of a sudden.
Noticed by: Mike Drangula (thanks!) via Jung-uk Kim (thanks!)
mjacob [Fri, 23 Feb 2007 05:39:58 +0000 (05:39 +0000)]
Be a bit more restrictive about printing out 'bad' pdb entries
during loop rescans. They're not bad so much as unstable, so
don't print this stuff out unless ISP_LOGSANCFG is set.
kensmith [Thu, 22 Feb 2007 20:29:53 +0000 (20:29 +0000)]
If floppies are used to boot the machine, the user lets the machine
complete the boot and enter into sysinstall, and only then inserts
a CD into the CDROM drive and tries to select that as the install
media the first call to mount(2) generates EIO but the second call
to mount(2) will succeed. This was 100% reproducible on 6.2-RELEASE,
RELENG_6, and HEAD. If the user inserts the disc into the CDROM
while the machine is booting off the floppies the first call to mount(2)
succeeds with no problems. The problem was originally reported in
PR #56952 against 5.1-CURRENT so it's been there for a while now.
jasone [Thu, 22 Feb 2007 19:10:30 +0000 (19:10 +0000)]
Modify chunk_alloc() to prefer mmap()ed memory over sbrk()ed memory.
This has no impact unless USE_BRK is defined (32-bit platforms), in
which case user allocations are allocated via mmap() if at all possible,
in order to avoid the possibility of unreclaimable chunks in the data
segment.
Fix an obscure bug in base_alloc() that could have allowed undefined
behavior if an application were to use sbrk() in conjunction with a
USE_BRK-enabled malloc.
csjp [Thu, 22 Feb 2007 14:50:31 +0000 (14:50 +0000)]
Use ETHER_BPF_MTAP() instead of BPF_MTAP() here. It's possible
incoming packets have had their 802.1Q tags processed by the
hardware, resulting in them being stripped from the packets, and
placed on the mbuf. This fixes the processing of 802.1Q tags when
hardware offload of 802.1Q tags is enabled.
rrs [Thu, 22 Feb 2007 12:42:43 +0000 (12:42 +0000)]
Adds a performance improvement for when sctp_sendx is
called with only one address, we then can call the
generic system call. Also fixes some socket api
type issues and cleans up the "magic" numbers that
were being used in the code.
rwatson [Thu, 22 Feb 2007 09:37:44 +0000 (09:37 +0000)]
Add an additional MAC check to the UNIX domain socket connect path:
check that the subject has read/write access to the vnode using the
vnode MAC check.
bms [Thu, 22 Feb 2007 00:14:02 +0000 (00:14 +0000)]
Fix a bug in if_findmulti(), whereby it would not find (and thus delete)
a link-layer multicast group membership.
Such memberships are needed in order to support protocols such as
IS-IS without putting the interface into PROMISC or ALLMULTI modes.
sa_equal() is not OK for comparing sockaddr_dl as it has deeper structure
than a simple byte array, so add sa_dl_equal() and use that instead.
jhb [Wed, 21 Feb 2007 18:17:44 +0000 (18:17 +0000)]
Restore support for the 5706C bce(4) phy that was broken during the
addition of SerDes support. According to the docs, the 5706C and 5708C
phys are supposed to use the same MII model that is separate from the
SerDes parts, but the 5706C actually uses the MII model of the SerDes
parts. To fix this, readd the old 5706C entry to miidevs and add a
special check in brgphy_probe() for phys that match the 5706C ID. If
the phy is supported by the gentbi(4) driver, then it's a SerDes phy, so
we fail the probe and let gentbi(4) grab it. Otherwise, it's a 5706C phy,
so we let brgphy(4) grab it.
gallatin [Wed, 21 Feb 2007 17:34:05 +0000 (17:34 +0000)]
Work around a firmware bug where broadcast frames would be incorrectly
treated as multicast frames and filtered, but when only when "adopting"
running firmware. By "adopting", I mean using pre-existing firmware
loaded from eeprom at PCI reset, rather than firmware loaded by the
driver.
sos [Wed, 21 Feb 2007 14:05:57 +0000 (14:05 +0000)]
Temporarily disable the support for some incarnations of the ICH8 chip that has
non consecutively numbered ports.
This should fix current SATA problems.
Support AHCI chips where the ports are not consecutively numbered as in
some incarnations of the ICH8 chip.
bms [Wed, 21 Feb 2007 13:41:51 +0000 (13:41 +0000)]
Change wording of warnings when there is no ip_mroute.ko module
loaded into the system.
Change wording of comments to reflect the fact we should unconditionally
use KVM if the -M option is used to specify a core file.
Add comments to document the fact that IPv6 multicast forwarding
information display still relies on KVM for gathering information.
n_hibma [Wed, 21 Feb 2007 07:45:02 +0000 (07:45 +0000)]
Reduce the noise when plugging in (USB) mass storage devices, like a 4 port
flash card reader.
Also remove an 'Opened da0 -> <random number>' which is not needed on a daily
basis (available through bootverbose).
kientzle [Wed, 21 Feb 2007 05:07:43 +0000 (05:07 +0000)]
If we already have stat() data, we might be able to
determine if this is a physical dir without an lstat().
While I'm in here, try to clarify the comments around
the _is_dir() and _is_physical_dir() tests.
cognet [Wed, 21 Feb 2007 00:30:09 +0000 (00:30 +0000)]
Check that the error returned by vfs_getopts() is not ENOENT before assuming
there's actually an error.
This is just in order to unbreak ntfs on current, before a proper solution is
committed.