Fix logic bug in pci bridge code. For a PCI-PCI bridge, secondary
should be <= than subordinate, not the other way around.
They are both true if the bridge is not cascaded (i.e., twin-channel
scsi/e-net adapters won't be affected by this bug), which is probably why
it was unnoticed until today.
John Polstra [Wed, 24 Apr 1996 23:31:08 +0000 (23:31 +0000)]
When a local symbol that would normally be eliminated by "-x" or
"-X" must survive, because of references from relocations, don't
qualify the symbol name with the name of the input file. This
saves some string space. It makes libc_pic.a about 2.4% smaller.
Change "Found end of tape. Load next tape ..." messages to say
"volume" instead of tape. Running cpio off of /dev/fd0 and having
it say "give me the next tape" is kind of ludicrous.. :-)
Paul Traina [Wed, 24 Apr 1996 20:18:25 +0000 (20:18 +0000)]
Close a security hole in sliplogin.
If you use sliplogin as a user shell (in /etc/passwd) upgrade to this version.
Reviewed by: bde, peter
Submitted by: AUS CERT
Obtained from: Linux sliplogin-2.02
John Dyson [Wed, 24 Apr 1996 04:16:45 +0000 (04:16 +0000)]
This fixes kmem_malloc/kmem_free (and malloc/free of objects of > 8K).
A page index was calculated incorrectly in vm_kern, and vm_object_page_remove
removed pages that should not have been.
Nate Williams [Tue, 23 Apr 1996 16:03:08 +0000 (16:03 +0000)]
Adds the APM hooks into the generic pccard kernel files. With this code
in place device drivers can now register power-down/power-up routines so
that we can use common routines to power-up/power-down cards for
insert/removals, suspend/resume, etc..
Fix a typo in the RESTART_SEQUENCER macro that could have caused
strange results. This bug has been in here for a loooong time.
Many thanks to Pedro Salenbauch for finding this.
I still have a _very very annoying_ display bug which occurs when a menu
item causes a submenu to be displayed - the screen repaints for the original
menu (which is restored upon return from the submenu) are off by about 4
characters. I've tried restoring the screen, the cursor position, you name
it - same deal. Grrrr! This commit is my first step in trying to get someone
else to help me look into this one since I'm just tearing my hair out at this
point!
Nate Williams [Mon, 22 Apr 1996 19:40:28 +0000 (19:40 +0000)]
- add apm to the GENERIC kernel (disabled by default), and add some comments
regarding apm to LINT
- Disabled the statistics clock on machines which have an APM BIOS and
have the options "APM_BROKEN_STATCLOCK" enabled (which is default
in GENERIC now)
- move around some of the code in clock.c dealing with the rtc to make
it more obvios the effects of disabling the statistics clock
Paul Traina [Sun, 21 Apr 1996 19:48:07 +0000 (19:48 +0000)]
Enable proper installation of sendmail restricted shell smrsh(8).
This program is a wrapper for the prog mailer in sendmail. It does shell
meta character masking and restricts the list of executables to those found
in /usr/libexec/sm.bin.
The default sendmail.cf file does not use this tool, however you can enable
it by either changing /bin/sh to /usr/libexec/smrsh or adding the line
FEATURE(smrsh) into your sendmail .mc file and rebuilding your .cf file.
John Polstra [Sun, 21 Apr 1996 17:45:38 +0000 (17:45 +0000)]
Add "-x" to the linker command for building shared libraries. This
eliminates many local symbols that could not be removed by the "ld -r -x"
steps on the individual object files. It makes shared libraries
substantially smaller -- almost 11%, in the case of libc.so.3.0.
Implement SCB paging which allows up to 255 active commands on aic7770
(Rev E or greater), aic7850, aic7860, aic7870, and aic7880 controllers.
SCB paging is enabled with the option "AHC_SCBPAGING_ENABLE". Full
comments on the algorithm are at the top of i386/scsi/aic7xxx.c.
options "AHC_TAGENABLE" and "AHC_QUEUE_FULL" have been removed. The
default is 4 tags without SCB paging, 8 with.
Clear the SCSIRSTI bit after throwing a bus reset. Some cards seem to get
confused otherwise.
Handle SCSIRSTI interrupts before checking to see if there is a valid
SCB in use since this can happen. (Clears PR# i386/1123)
Clean up the way we determine the number of SCBs on the card
(courtesy of Dan Eischen).
Guard against attempts to negotiate wide to a narrow controller.
Implement SCB paging. This allows up to 255 active commands on
aic7770 >= Rev E, aic7850, aic7860, aic7870, and ai7880 based controllers.
Make findSCB safer for non-tagged commands when tagged commands are
active on the controller. The symptoms of this problem were
"Overlapped commands attempted" messages during error recovery
attempts.
Compact scratch ram usage. This leaves 8 bytes free for future use.
John Polstra [Sat, 20 Apr 1996 18:29:50 +0000 (18:29 +0000)]
Implement support for LD_PRELOAD in the dynamic linker. Remove
descriptions of LD_NO_INTERN_SEARCH and LD_NOSTD_PATH from the manual
page, since they are not supported.
Bruce Evans [Fri, 19 Apr 1996 19:34:19 +0000 (19:34 +0000)]
Yet more b_flags fixes. The previous ones broke the clearing of B_DONE
and B_READ before writing. This was was fatal. They also broke the
clearing of B_INVAL before doing i/o. This didn't actually matter.
Bruce Evans [Fri, 19 Apr 1996 19:22:29 +0000 (19:22 +0000)]
Fixed removal of devfs entries for the real slice corresponding to the
compatibility slice. They were forgotten on last-close and then
creating them on first-open failed.
Devfs entries for slices other than the one containing the root file
system are still invisible unless you open a non-devfs inode on the
slice.
Bruce Evans [Fri, 19 Apr 1996 19:00:26 +0000 (19:00 +0000)]
Removed bogus includes of <sys/types.h> from synopses.
This commit covers the man pages for most of the ANSI library functions.
A few others such as strtol.3 have to mention <sys/types.h> because they
mix ANSI interfaces with less well designed extensions.
Nate Williams [Thu, 18 Apr 1996 19:21:47 +0000 (19:21 +0000)]
- Addition of my name to the APM Copyright
- More code cleanups
- #ifdef DEBUG debugging code
- More consistant printfs
- Better handling of the apm_int() assembly code (mostly from Bruce Evans)
Three speed-ups in the output path (two small, one substantial):
1) Require all callers to pass a valid route pointer to ip_output()
so that we don't have to check and allocate one off the stack
as was done before. This eliminates one test and some stack
bloat from the common (UDP and TCP) case.
2) Perform the IP header checksum in-line if it's of the usual length.
This results in about a 5% speed-up in my packet-generation test.
3) Use ip_vhl field rather than ip_v and ip_hl bitfields.
Remove the special-case behavior for fire actions that return
DITEM_FAILURE - formerly they would simply act as an implicit "continue",
but this is wrong. If you want this behavior, you should now return
with the DITEM_CONTINUE flag set.
Also make the semantics of DITEM_RESTORE quite a bit different - rather
than restore the screen back to pre-menu state, we restore the menu
itself. This is more correct for a variety of reasons when dealing with
nested menus (whoops!).
Use -X to be xargs-friendly
Check devices too, follow original BSD intention
Find only executable files with s-bits, close PR bin/1022
Reset locale to C to have equal results in any case
Paul Traina [Wed, 17 Apr 1996 09:00:53 +0000 (09:00 +0000)]
Add in linux support for the quickcam driver bottom half and
add a new "invasive camera scan" option for folks who have weird
cameras or weird parallel ports.
More changes to attempt to make this whole new dialog scheme more
robust. The new "fire" actions, while affording signficantly more
interactivity to libdialog, come at a cost - if the fire action trashes
the screen then you're not going to be in Kansas anymore when you
come back to the menu and there had better be considerable extra
smarts in place for coping with such a situation. These changes are my
attempt to do just that.
Bill Paul [Tue, 16 Apr 1996 00:23:59 +0000 (00:23 +0000)]
NIS cleanups and fixes, the next generation, continued.
pwd_mkdb.c:
- Don't save the PLUSCNT and MINUSCNT tokens: we don't need them anymore.
- Count the + and - entires for NIS together instead of counting + and -
entries seperately. Index all special NIS entries using new _PW_KEYYPBYNUM
token.
pwd.h:
- Remove the PLUSBYNUM, MINUSBYNUM, PLUSCNT and MINUSCNT tokens and replace
then with a single _PW_KEYYPBYNUM token.
Bill Paul [Tue, 16 Apr 1996 00:22:41 +0000 (00:22 +0000)]
NIS cleanups and fixes, the next generation.
getnetgrent.c:
- Catch one bogon that snuck by: in _listmatch(), check for '\0'
rather than '\n'; strings returned from yp_match() are terminated
with a nul, not a newline.
getpwent.c:
- Rip out all of the +inclusion/-exclusion stuff from before and
replace it with something a little less grotty. The main problem
with the old mechanism was that it wasted many cycles processing
NIS entries even after it already knew they were to be exlcuded
(or not included, depending on your pointof view). The highlights
of these changes include:
o Uses an in-memory hash database table to keep track of all the
-@netgroup, -user, and -@group exclusions.
o Tries harder to duplicate the behavior normally obtained when using
NIS inclusions/exclusions on a flat /etc/passwd file (meaning things
come out in much the same order).
o Uses seperate methods for handling getpwent() and getpwnam()/getpwuid()
operations instead of trying to do everything with one general
function, which didn't work as well as I thought it would.
o Uses both getnetgrent() and innetgr() to try to save time where
possible.
o Use only one special token in the local password database
(_PW_KEYYPBYNUM) instead of seperate tokens to mark + and -
entries (and stop using the counter tokens too). If this new
token doesn't exist, the code will make due with the standard
_PW_KEYBYNUM token in order to support older databases that
won't have the new token in them.
All this is an attempt to make this stuff work better in environments
with large NIS passwd databases.
Bill Paul [Mon, 15 Apr 1996 16:17:04 +0000 (16:17 +0000)]
Fix a few NIS-related bogons:
- Clear the _yp_innetgr flag immediately after calling setnetgrent() from
innetgr(). We only need the flag set to temporarily alter setnetgrent()'s
behavior. Previously, it was being cleared too late.
- When in NIS-only mode, innetgr() was wasting time doing unecessary
extra processing after it had already found a match.
- Remember to free memory allocated by the NIS functions during innetgr()
searches.