Commit Graph

61604 Commits

Author SHA1 Message Date
Matt Jacob
f334280581 The MODULE_NAME should "ispfw" unless overriden, not "isp". 2006-12-10 03:42:57 +00:00
Matt Jacob
3cce220cba Remove dependency on ispfw and firmware as modules.
Either they're there early and the ispfw sets have
registered themselves, or they're not.

The module dependency stuff isn't quite what we want
anyway. If the user doesn't want the load placed on
system memory by loading the firmware, they don't
specify it to be loaded (either by being linked in
or via being a module to be loaded and then hooked
in with firmware(9)). It doesn't then make sense to
then override what they want by pulling it in anyway.

This might be able to work if we were able to pull in
just exactly what we needed for the card we have- but
that's an optimization left for the future.
2006-12-10 03:41:48 +00:00
Kip Macy
42b20c8aa2 Add hw.physmemstart loader variable to enable the user to specify the address
at which the kernel should start allocating physical memory. The primary
purpose of this is to test 64-bit cleanness of the data path by setting
hw.physmemstart=4G so that all physical allocations are above 4GB. AMD64
and i386/PAE could also benefit from having this option.
2006-12-10 01:52:46 +00:00
Matt Jacob
5bac03f95c Make mpt_pci depend on pci and mpt_cam depend on CAM.
PR:		106536
Suggested by:	Norikatsu Shigemura
MFC after:	3 days
2006-12-10 01:13:56 +00:00
Warner Losh
600313b16e As Bernd Walter points out, the rlphy is used for more things than
just the intenral phy on parts supported by the rl and re drivers, the
RTL8201BL for example.  He also sent me a nice picture of hundreds of
these chips in a tray to boulder his claim.  :-) Therefore remove a
comment that suggested that they were...
2006-12-10 01:10:08 +00:00
Kip Macy
90e405668e Fix handling of the hw.physmem loader variable use real_phys_avail[] which
is already bounded by hw.physmem to calculate phys_avail[] - previously only
real_phys_avail[] was being bound by hw.physmem so we were allocating memory
that wasn't mapped in the direct map
2006-12-09 23:11:30 +00:00
Ariff Abdullah
1b5c0d50f6 - Fix headphone/speakers automute on Lenovo 3000 N100.
Tested by:	xride

- GPIO commit cleanups and fixes for possible breakage during
  previous commit.
2006-12-09 17:52:54 +00:00
Craig Rodrigues
b05872f29b Remove unused variable in unionfs_root().
Submitted by:	daichi, Masanori OZAWA
2006-12-09 17:24:18 +00:00
Craig Rodrigues
1e370dbbdc Use vfs_mount_error() in a few places to give more descriptive mount error
messages.
2006-12-09 17:21:25 +00:00
Craig Rodrigues
30d471e654 Add locking around calls to unionfs_get_node_status()
in unionfs_ioctl() and unionfs_poll().

Submitted by:	daichi, Masanori OZAWA <ozawa@ongs.co.jp>
Prompted by:	kris
2006-12-09 16:51:09 +00:00
Craig Rodrigues
b16f4eec16 In unionfs_readdir(), prevent a possible NULL dereference.
CID:		1667
Found by:	Coverity Prevent (tm)
2006-12-09 16:34:37 +00:00
Craig Rodrigues
acc4bab11b In unionfs_hashrem(), use LIST_FOREACH_SAFE when iterating over
the list of nodes to free them.

CID:		1668
Found by:	Coverity Prevent (tm)
2006-12-09 16:27:50 +00:00
Kip Macy
76cb7acf30 - remove restriction on OFW kernel allocations being 4M
- shuffle memory range following kernel to the beginning of phys_avail
- have the direct area use 256MB pages where possible
- remove dead code from the end of pmap_bootstrap
- have pmap_alloc_contig_pages check all memory ranges in phys_avail before
  giving up

- informal benchmarking indicates a ~5% speedup on buildworld
2006-12-09 05:22:22 +00:00
Craig Rodrigues
e9022ef898 Minor cleanup. If we are doing a mount update, and we pass in
an "export" flag indicating that we are trying to NFS export the
filesystem, and the MSDOSFS_LARGEFS flag is set on the filesystem,
then deny the mount update and export request.  Otherwise,
let the full mount update proceed normally.
MSDOSFS_LARGES and NFS don't mix because of the way inodes are calculated
for MSDOSFS_LARGEFS.

MFC after:	3 days
2006-12-09 01:49:19 +00:00
Matt Jacob
6890d7af94 clarify a comment slightly 2006-12-09 01:33:55 +00:00
Matt Jacob
9b03492a7d Find another spot where tagged command queueing got
accidentally nuked.
2006-12-09 01:30:05 +00:00
Luigi Rizzo
294dd290c6 Fix an oscure bug triggered by a recent change in kern_socket.c.
The symptoms were that outgoing DHCP requests for diskless kernels
had the IP header corrupt. After long investigations, the source of
the problem was found in ether_output() - for SIMPLEX interfaces
and broadcast traffic, a copy of the packet is passed back to the kernel
through if_simloop(). However if_simloop() modifies the mbuf, while
the copy obtained through m_copym() is a readonly one.

The bug has been there forever, but it has been triggered only recently
by a change in sosend_dgram() which passed down mbufs with sufficient
space to prepend the header.

This fix is trivial - use m_dup() instead of m_copy() to create
the copy. As an alternative, we could try and modify if_simloop()
to play safely with readonly mbufs, but i don't think it is worthwhile
because 1) this is a relatively infrequent code path so we do not need
to worry too much about performance, and 2) the cost of doing an
extra m_pullup in if_simloop() is probably the same as doing the
copy of the cluster, anyways.

MFC after: 1 week
2006-12-08 10:36:45 +00:00
Kip Macy
35d10226b7 Remove the requirement that phys_avail be sorted in ascending order
by explicitly finding the lowest and highest addresses when calculating
the size of the vm_pages array

Reviewed by :alc
2006-12-08 08:44:47 +00:00
Tim Kientzle
8d3027e203 The ISO9660 spec does allow files up to 4G. Change the i_size
field to "unsigned long" so that it actually works.
Thanks to Robert Sciuk for sending me a DVD that
demonstrated ISO9660-formatted media with a file >2G.
I've now fixed this both in libarchive and in the cd9660
filesystem.

MFC after: 14 days
2006-12-08 07:43:53 +00:00
Marius Strobl
22e5ade048 - Revert the parts of the previous revision which reloaded the watchdog
timer in xl_txeof()/xl_txeof_90xB(); xl_poll_locked() unconditionally
  invokes xl_txeof()/xl_txeof_90xB(), effectively circumventing that
  the watchdog ever fires in the DEVICE_POLLING case as its timer is
  constantly reloaded.
- Remove the banal and pedantically outdated comment regarding setting
  xl_wdog_timer to 0 in xl_txeof().

Pointed out by:	bde
2006-12-08 03:18:16 +00:00
Matt Jacob
7185cd3625 PH! Forgot to do my cross-compile check. Also now rearranged things so
the ENDIAN defines are consistent between mpt.h and mpt.c.
2006-12-07 23:51:00 +00:00
Matt Jacob
0e0521a153 MFP4: principally to reapply tagged command support to FC and SAS cards. 2006-12-07 22:02:28 +00:00
Marcel Moolenaar
d2a2b3293e Add support for multiple FAST handlers.
Reviewed & tested by: grehan@
2006-12-07 17:08:16 +00:00
Kevin Lo
f910c56c11 Add header files <sys/lock.h> and <sys/mutex.h> for mtx_init() and friends.
Approved by: cognet
2006-12-07 15:24:38 +00:00
Ariff Abdullah
cc726a7f98 Don't try to workaround broken apps (if any). If this still the case,
lets fix the broken apps instead.
2006-12-07 07:48:58 +00:00
Ariff Abdullah
b45d0ec80d Remove comment that is no longer relevant since previous
buffering fix.
2006-12-07 07:48:20 +00:00
Craig Rodrigues
3a13c9cc28 Use vfs_mount_error() to log mount errors in a few places with human
readable strings which can be retrieved if an "errmsg" parameter is
passed into nmount().
2006-12-07 02:57:00 +00:00
Kip Macy
5b1bbad223 fix CID 1671 by freeing listp before exit from vnex_attach 2006-12-07 02:09:06 +00:00
Kip Macy
7e8123da0e fix CID 1670 by freeing pointer listp before returning 2006-12-07 02:05:13 +00:00
Kip Macy
1abcd84428 fix CID 1672 by initializing variable clock 2006-12-07 02:04:25 +00:00
Kip Macy
e177c79351 Fix CID 1669 by removing dead sf_buf code 2006-12-07 02:03:18 +00:00
Sam Leffler
81319550dd Handle a missing NPE firmware file better; if it's missing print a
(somewhat) meaningful message and terminate the build.  It'd be
nice to print a proper URL from which to fetch the file but that
seems problematic.  Leave a suggested starting point in this file
(TBD: add it to the man page).

Submitted by:	ru
2006-12-07 00:49:33 +00:00
Olivier Houchard
ae89920ab9 Unbreak build for Skyeye: do not attempt to do any DMA, as Skyeye doesn't
emulate it.

Reported by:	ru
2006-12-07 00:24:15 +00:00
John Baldwin
5c356a4834 Fix compile with BCE_DEBUG. The last one tripped up gcc 2.95 on 4.x even
with BCE_DEBUG turned off.
2006-12-06 22:53:22 +00:00
Max Laier
294410acf6 Drop the iwi softc lock when calling back into net80211 on rx. This fixes a
LOR with direct dispatch in the netisr.

Reported and tested by:	Munehiro Matsuda
Submitted by:		jhb
LOR id:			194
2006-12-06 21:23:51 +00:00
Maxim Sobolev
efa43a53bd Allow machdep.cpu_idle_hlt to be set from the loader. This should allow
to workaround the problem with SMP kernels on Turion64 X2 processors
described in kern/104678 and may be useful in other situations too.

MFC after:	3 days
2006-12-06 18:27:17 +00:00
John Baldwin
44496fb5f2 Ignore any breakpoint instructions (int 3) we encounter in vm86 mode
rather than treating them as a fatal exception and halting.  At least one
storage BIOS (some newer mpt(4) parts) have a breakpoint instruction in
their disk read routine.

MFC after:	3 days
2006-12-06 17:45:35 +00:00
John Baldwin
d78cd1ad55 Fix some edge cases in detach() as well as a memory leak if we fail to
talk to the BMC.

Reported by:	Alexander Logvinov : ports at logvinov_com
MFC after:	1 week
2006-12-06 15:10:11 +00:00
Colin Percival
8b0a738288 Correct a signedness bug which allowed members of the operator
group to read kernel memory.

Security:	FreeBSD-SA-06:25.kmem
2006-12-06 09:13:51 +00:00
Julian Elischer
fc6c30f6c6 Changes to try fix sched_ule.c courtesy of David Xu. 2006-12-06 06:55:59 +00:00
Julian Elischer
ad1e7d285a Threading cleanup.. part 2 of several.
Make part of John Birrell's KSE patch permanent..
Specifically, remove:
Any reference of the ksegrp structure. This feature was
never fully utilised and made things overly complicated.
All code in the scheduler that tried to make threaded programs
fair to unthreaded programs.  Libpthread processes will already
do this to some extent and libthr processes already disable it.

Also:
Since this makes such a big change to the scheduler(s), take the opportunity
to rename some structures and elements that had to be moved anyhow.
This makes the code a lot more readable.

The ULE scheduler compiles again but I have no idea if it works.

The 4bsd scheduler still reqires a little cleaning and some functions that now do
ALMOST nothing will go away, but I thought I'd do that as a separate commit.

Tested by David Xu, and Dan Eischen using libthr and libpthread.
2006-12-06 06:34:57 +00:00
Marius Strobl
3541d6d881 - Use the xl_stats_update() callout instead of if_slowtimo() for
driving xl_watchdog() in order to avoid races accessing if_timer.
  While at it relax the watchdog a bit by reloading it in xl_txeof()/
  xl_txeof_90xB() if there are still packets enqueued.
- Use bus_get_dma_tag() so xl(4) works on platforms requiring it.
- Don't bother to set if_mtu to ETHERMTU, ether_ifattach() does that.
2006-12-06 02:18:41 +00:00
Sam Leffler
49d5157434 consolidate parsing of nfs root mount options in one place
and handle all options (some may require fixes elsewhere)

Reviewed by:	jhb, mohans
MFC after:	1 month
2006-12-06 02:15:25 +00:00
Marius Strobl
fc64bae41b Use our own callout instead of if_slowtimo() for driving lance_watchdog()
in order to avoid races accessing if_timer.
2006-12-06 02:14:31 +00:00
Marius Strobl
05856e0b8f - Use the hme_tick() callout instead of if_slowtimo() for driving
hme_watchdog() in order to avoid races accessing if_timer.
- Use bus_get_dma_tag() so hme(4) works on platforms requiring it.
- Don't bother to set if_mtu to ETHERMTU, ether_ifattach() does that.
2006-12-06 02:07:20 +00:00
Marius Strobl
8cb37876d6 - Use the gem_tick() callout instead of if_slowtimo() for driving
gem_watchdog() in order to avoid races accessing if_timer.
  While at it relax the watchdog a bit by reloading it in gem_tint()
  if there are still packets enqueued.
- Don't bother to set if_mtu to ETHERMTU, ether_ifattach() does that.
- Fix inconsistencies in prototypes.
2006-12-06 02:04:25 +00:00
Marius Strobl
b1d161435e - Use our own callout (the dc_tick() callout uses varying periods
depending on the NIC and isn't used at all with HomePNA links)
  instead of if_slowtimo() for driving dc_watchdog() in order to
  avoid races accessing if_timer.
- Use bus_get_dma_tag() so dc(4) works on platforms requiring it.
- Don't bother to set if_mtu to ETHERMTU, ether_ifattach() does that.
- Remove an alpha remnant in dc_softc.
2006-12-06 01:56:38 +00:00
Hajimu UMEMOTO
61e5d30af7 Use callout mechanism instead of timeout()/untimeout().
MFC after:	1 week
2006-12-05 18:54:21 +00:00
John Baldwin
81b6f8d5df Fix an off by one error in struct nve_tx_desc's frags[] array as a result
of the nvenet lib upgrade (the constant went from 63 (2^n - 1) to
32 (2^n)).  For reasons that are not obvious to me this fixes the driver
on at least some NICs.

MFC after:	3 days
2006-12-05 15:31:05 +00:00
Ruslan Ermilov
3cbc967ef7 Use a different bitmask for superpages' base address so that it
doesn't conflict with the PG_PDE_PAT bit.  (We still don't mask
off all the reserved bits but that's okay for now.)

Reviewed by:	alc
2006-12-05 11:31:33 +00:00