Commit Graph

107081 Commits

Author SHA1 Message Date
Ian Dowse
941fdb393b Add the loader side of support for preloading ELF relocatable object
format modules, which are currently only used on the amd64 platform.
This initial implementation just parses enough of the module to
allow it to extract dependencies and load all the bits into the
right place in memory, so the kernel must still do the full relocation
and linking. The details of the loaded sections are passed to the
kernel by supplying a copy of the ELF section header table as module
metadata with the MODINFOMD_SHDR tag.
2004-08-29 00:48:42 +00:00
Ian Dowse
45b8d7c46e Separate out the ELF relocation code from the ELF loader, and add
better relocation support for the amd64 and i386 platforms. This
should not result in any change in functionality, but moves a step
towards supporting the relocatable object file modules on amd64.

The same hack/trick as load_elf*.c uses is used here to simultaneously
support both elf32 and elf64 on amd64 and i386.
2004-08-28 23:03:05 +00:00
Wilko Bulte
11e9b7ef70 Stop pretending: TurboLaser support is really broken
MFC after:	2 days
2004-08-28 21:47:24 +00:00
Wilko Bulte
c8d51c4c0d Stop pretending: TurboLaser support is really broken.
MFC after:	2 days
2004-08-28 21:42:15 +00:00
Wilko Bulte
b91d620462 Now that I discovered that 164SX SRM recognises Intel 8255x NICs and allows
them to be net booted lets document that fact.
2004-08-28 21:11:52 +00:00
Alan Cox
c3d11d22be Eliminate unnecessary indirection. 2004-08-28 20:27:12 +00:00
Ruslan Ermilov
cd0bd20d63 Fixed untested change. 2004-08-28 19:40:03 +00:00
Ian Dowse
9dba198b0e Explicitly pass in the relocation base and data offset into ef_reloc()
rather than relying on a trick that happens to work for the current
relocation schemes. Also add some comments and improve variable
naming.
2004-08-28 19:31:10 +00:00
Robert Watson
ace437c3c6 Correct typo in printf() warning.
Submitted by:	Pawel Worach <pawel.worach at telia.com>
2004-08-28 19:27:25 +00:00
Hiroki Sato
e32486f083 In 5.x, a device hint is used instead of a device flag
and UserConfig.

Submitted by:	Gavin Atkinson (gavin.atkinson at ury dot york dot ac dot uk)
PR:		docs/66980
MFC after:	2 days
2004-08-28 19:04:43 +00:00
Robert Watson
c1c94d5cdc Add an updating entry for the recent change in network stack locking
default for debug.mpsafenet, pointing at the recent announcement and
things to try if instability is experienced.
2004-08-28 17:08:30 +00:00
Alexander Leidinger
3e41e813b7 Add the Intel ICH watchdog timer driver.
Approved by:	des
2004-08-28 15:41:31 +00:00
Robert Watson
98f6a62499 Mark Netgraph TTY, KAME IPSEC, and IPX/SPX as requiring Giant for correct
operation using NET_NEEDS_GIANT().  This will result in a boot-time
restoration of Giant-enabled network operation, or run-time warning on
dynamic load (applicable only to the Netgraph component).  Additional
components will likely need to be marked with this in the future.
2004-08-28 15:24:53 +00:00
Simon L. B. Nielsen
d724a9d5ea Remove the listing for the Seagate ST01/02 and the Future Domain 8xx/950
SCSI controllers.  The driver was removed before FreeBSD 3.0, so it is
probably time to remove from the Hardware Notes... :-).

Historical clue by:	Josh Paetzel <josh@tcbug.org>
MFC after:		3 days
2004-08-28 15:14:03 +00:00
Robert Watson
1d8cd39e71 Change the default disposition of debug.mpsafenet from 0 to 1, which
will cause the network stack to operate without the Giant lock by
default.  This change has the potential to improve performance by
increasing parallelism and decreasing latency in network processing.

Due to the potential exposure of existing or new bugs, the following
compatibility functionality is maintained:

- It is still possible to disable Giant-free operation by setting
  debug.mpsafenet to 0 in loader.conf.

- Add "options NET_WITH_GIANT", which will restore the default value of
  debug.mpsafenet to 0, and is intended for use on systems compiled with
  known unsafe components, or where a more conservative configuration is
  desired.

- Add a new declaration, NET_NEEDS_GIANT("componentname"), which permits
  kernel components to declare dependence on Giant over the network
  stack.  If the declaration is made by a preloaded module or a compiled
  in component, the disposition of debug.mpsafenet will be set to 0 and
  a warning concerning performance degraded operation printed to the
  console.  If it is declared by a loadable kernel module after boot, a
  warning is displayed but the disposition cannot be changed.  This is
  implemented by defining a new SYSINIT() value, SI_SUB_SETTINGS, which
  is intended for the processing of configuration choices after tunables
  are read in and the console is available to generate errors, but
  before much else gets going.

This compatibility behavior will go away when we've finished the last
of the locking work and are confident that operation is correct.
2004-08-28 15:11:13 +00:00
Robert Watson
2a567ae5ec Tag a last set of PCI network interfaces as IFF_NEEDSGIANT until they
are either locked down or demonstrated MPSAFE.
2004-08-28 15:10:35 +00:00
Ian Dowse
c0b43624d5 Add a few helper functions for zeroing kernel space and reading
from specified file offsets. Make use of these in load_elf.c.
2004-08-28 14:57:34 +00:00
Mike Makonnen
a53b524bb4 Also, match the full path to the special nologin shell.
Previously, it would recognize it as a valid shell only
if the basename (nologin) was specified. Now, it will
recognize both the basename and the full path.

NOTE: The full path as adduser(8) understands it is /usr/sbin/nologin.
      There is a symlink, /sbin/nologin, but that's deprecated and
      only there for backwards compatibility.
2004-08-28 14:32:10 +00:00
Dag-Erling Smørgrav
90fcc4b33b Add genericize, a Perl script that converts a kernel config into something
more easily diffable against GENERIC.
2004-08-28 13:36:16 +00:00
Tim J. Robbins
ef0ca90319 Symlink missing lt_LT.ISO8859-4 LC_MONETARY, LC_MESSAGES and LC_NUMERIC
data files to the ISO8859-13 versions.
2004-08-28 13:24:24 +00:00
Tim J. Robbins
1bbc832cce Add Basque (Spain) locales: eu_ES.ISO8859-1, eu_ES.ISO8859-15, eu_ES.UTF-8.
(This differs somewhat from the version originally submitted - any mistakes
are my own.)

PR:		68524
Submitted by:	J. Vicente Carrasco -Bixen-
2004-08-28 12:52:31 +00:00
Tim J. Robbins
1984067662 Re-generate from ru_RU.KOI8-R.src. Due to a bug in either iconv or
ru_RU.CP866.src, the previous version of this file contained a strange
conversion error: nostr had U+255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
instead of U+0435 CYRILLIC SMALL LETTER IE.
2004-08-28 10:59:03 +00:00
MIHIRA Sanpei Yoshiro
ea263191fd Add support Corega CG-LAPCIGT Gigabit Ethernet(8169S)
PR:		[FreeBSD-users-jp 80667]
Submitted by:	FUJIMOTO Kou <fujimoto@j.dendai.ac.jp>
MFC after:	1 week
2004-08-28 10:59:02 +00:00
Yaroslav Tykhiy
a30e1135b4 Don't be too smart, just try packet mode of INT13 first.
This way of operation is more robust than the "AI" used
before.

Add flags to mbr accessible from make.conf as BOOT_MBR_FLAGS.
Only one flag is defined now, "allow using packet mode", which
is 0x80 in accord with the rest of i386 boot code.  The "packet"
flag is on by default.

PR:             i386/70241
Submitted by:   Valentin Nechayev <netch <@> netch.kiev.ua> (inital version)
Discussed with: jhb (by Valentin Nechayev)
Tested on:      bochs (with EDD turned on or off by patching the BIOS), PCs
2004-08-28 08:39:35 +00:00
Yaroslav Tykhiy
57888b4c83 Try packet mode of INT13 on a hard disk first if not prohibited by
the flag, fall back to the old INT13/AH=02 function if that fails.
This way of operation is less likely to fail with modern BIOSes and
large disks of strange geometries.

PR:		i386/70241
Submitted by:	Valentin Nechayev <netch <@> netch.kiev.ua> (inital version)
Discussed with:	jhb (by Valentin Nechayev)
Tested on:	bochs (with EDD turned on or off by patching the BIOS), PCs
2004-08-28 08:32:23 +00:00
Yaroslav Tykhiy
cd9d7d4d0c Avoid double appearing of cloned interfaces in the output
from list_net_interfaces() when network_interfaces=auto.

Rationale: Since the auto case is special, the lesser evil
had to be chosen among not adding cloned interfaces to
_tmplist or removing duplicates from _tmplist after adding
cloned interfaces.  Since list_net_interfaces() must not use
/usr/bin tools, the former "evil" appeared clearer and much
more efficient.  (See the PR audit trail for discussion.)

PR:		conf/63700
Reviewed by:	brooks
MFC after:	5 days
2004-08-28 07:58:02 +00:00
Tim Kientzle
cb7f04cf39 Make -C and -T work correctly together.
MFC after: 3 days
Thanks to: Guy Helmer
2004-08-28 05:28:19 +00:00
David Xu
5897f840f0 1. try to use existing mailbox address in thread_update_usr_ticks.
2. remove '\n' in KASSERT.
2004-08-28 04:16:32 +00:00
David Xu
ad1280b593 Move TDF_CAN_UNBIND to thread private flags td_pflags, this eliminates
need of sched_lock in some places. Also in thread_userret, remove
spare thread allocation code, it is already done in thread_user_enter.

Reviewed by: julian
2004-08-28 04:08:05 +00:00
John-Mark Gurney
b7131a2672 document that m_free returns m_next of the free'd mbuf 2004-08-28 03:46:18 +00:00
Tim Kientzle
61bc62e942 Recognize and skip 'x' and 'g' pax extension entries. In particular,
this avoids the creation of "PaxHeader" dirs when unpacking pax-format
tar archives such as those written by bsdtar.

MFC after: 3 days
2004-08-28 03:13:05 +00:00
Pawel Jakub Dawidek
6654ade6e5 Warn the user if we are not going to use the whole provider's space. 2004-08-28 02:49:28 +00:00
Pawel Jakub Dawidek
c0d68b6ef2 Use sc->sc_mediasize instead of sc->sc_provider->mediasize which contains
exactly the same value, but is shorter.
2004-08-28 02:35:43 +00:00
Pawel Jakub Dawidek
08249e9e6e Warn the user if we are not going to use whole provider space.
Requested by:	Michael Handler <handler@grendel.net>
2004-08-28 02:34:10 +00:00
Pawel Jakub Dawidek
f792f1d865 - If error string begins with "warning: ", don't exit, treat it as a warning
only.
- Use getprogname() function when informing about versions problem.
2004-08-28 02:29:40 +00:00
Pawel Jakub Dawidek
16ebaa0793 Don't allow to insert providers, which are too small.
Reported by:	Michael Handler <handler@grendel.net>
2004-08-28 02:02:48 +00:00
Peter Wemm
6f96710c60 Backout the previous backout (with scott's ok). sched_ule.c:1.122 is
believed to fix the problem with ULE that this change triggered.
2004-08-28 01:04:44 +00:00
David E. O'Brien
dd68efd05b s/smp_rv_mtx/smp_ipi_mtx/g
Requested by:	jhb
2004-08-28 00:49:55 +00:00
Peter Wemm
91c1172a5a Commit Jeff's suggested changes for avoiding a bug that is exposed by
preemption and/or the rev 1.79 kern_switch.c change that was backed out.

The thread was being assigned to a runq without adding in the load, which
would cause the counter to hit -1.
2004-08-28 00:49:22 +00:00
Simon L. B. Nielsen
31c4f57542 - Auto generate device listings for the following drivers: snd_ad1816,
snd_cmi, snd_cs4281, snd_ds1, snd_emu10k1, snd_es137x, and snd_solo.

MFC after:	5 days
2004-08-27 22:58:29 +00:00
Søren Schmidt
d3ef327c8d remove unused prototype 2004-08-27 22:14:45 +00:00
Roman Kurakin
6b1cbdfc68 Make code ready to switch debug.mpsafenet to 1 since I've not able to
commit MPSAFE code for now it is just IFF_NEEDSGIANT.
2004-08-27 22:14:26 +00:00
Simon L. B. Nielsen
73ad990a0c Add manual pages for several sound drivers.
Submitted by:	Atte Peltomaki <koston@iki.fi>
Reviewed by:	cg
MFC after:	5 days
2004-08-27 22:06:56 +00:00
Marcel Moolenaar
82ecff453f Catch up with the drive-by renaming of IA32 to COMPAT_IA32. Missed
11 days ago when all the other places were fixed and finally caught
by the tinderbox run...
2004-08-27 21:57:00 +00:00
Justin T. Gibbs
8cbbdb960d Forced commit to add additional comment.
o Add MOUSE_PS2_TAP into syncmask[0] correctly when we're built with
   PSM_CONFIG_FORCETAP.  The previous code from revision 1.56 attempted
   to do this but updated the a mask variable that would be clobbered later.
o  If syncmask[1] hasn't yet been set when ioctl(MOUSE_GETMODE) is called,
   zero syncmask[0] and syncmask[1] so that sync validation is effectively
   disabled in userland applications and moused doesn't misbehave.  The
   psm driver performs sync validation so there is no loss in functionality
   in clearing the sync mask.
o  If PSM_NEED_SYNCBITS is set, setup syncmask[1], even if it's already
   correct.  This prevents the PSM_NEED_SYNCBITS bit from being left on
   after a re-initialisation and erroneously causing a subsequent
   out-of-sync packet to mis-set syncmask[1].
2004-08-27 21:33:33 +00:00
Simon L. B. Nielsen
bc0b4ff69c - Improve handling of trailing punctuation characters for the Xr macro.
MFC after:	3 days
2004-08-27 21:32:24 +00:00
Lukas Ertl
5bad268cdc Move config_new_drive() to the correct place and rename it to
gv_config_new_drive().
2004-08-27 21:32:18 +00:00
Tilman Keskinoz
0039290c1f Fix a comment, IA32 was renamed to COMPAT_IA32
Approved by:	marcel
2004-08-27 21:29:20 +00:00
Justin T. Gibbs
5fb0f52712 Improve sync recovery algorithm:
o Remove PSM_SYNCERR_THRESHOLD1.  This value specified how many sync
   errors were required before the mouse is re-initialised.
   Re-initialisation is now done after (packetsize * 2) sync errors as
   things aren't likely to improve after that.

 o Reset lastinputerror when re-initialisation occurs.  We don't want
   to continue to drop data after re-initialisation.

 o Count the number of failed packets independently of the syncerrors
   statistic.  syncerrors is useful for recovering sync within a single
   packet.  pkterrors allows us to detect when the mouse changes its
   packet mode due to some external event (e.g. KVM switch).

 o Reinitialize the mouse if we see more than psmpkterrthresh errors
   during the validation period.  The validation period begins as soon
   as a sync error is detected and continues until psmerrsecs/msecs
   time has elapsed.  The defaults for these two values force a reset
   if we see two packet errors in a 2 second period.  This allows rapid
   detection of packet framing errors caused by the mouse changing packet
   modes.

 o Export psmpkterrthresh as a sysctl

 o Export psmloglevel as a sysctl.

 o Enable more debugging code to be enabled at runtime via psmloglevel.

 o Simplify verbose conditioned loging by using a VLOG macro.

 o Add several comments describing the sync recovery algorithm of
   this driver.

Large Portions by: Brian Somers <brian@Awfulhak.org>
Inspired and Frustrated by: Belkin KVMs
Reviewed by: njl, philip
2004-08-27 21:25:16 +00:00
Andre Oppermann
2580f4e584 Poll() uses the array smallbits that is big enough to hold 32 struct
pollfd's to avoid calling malloc() on small numbers of fd's.  Because
smalltype's members have type char, its address might be misaligned
for a struct pollfd.  Change the array of char to an array of struct
pollfd.

PR:		kern/58214
Submitted by:	Stefan Farfeleder <stefan@fafoe.narf.at>
Reviewed by:	bde (a long time ago)
MFC after:	3 days
2004-08-27 21:23:50 +00:00