Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
83257356
Commit
83257356
authored
Nov 23, 2007
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Import 2.0.5
parent
f44f1554
Changes
32
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
412 additions
and
120 deletions
+412
-120
CREDITS
CREDITS
+8
-6
Documentation/devices.tex
Documentation/devices.tex
+24
-4
Documentation/devices.txt
Documentation/devices.txt
+17
-3
Makefile
Makefile
+1
-1
arch/alpha/boot/Makefile
arch/alpha/boot/Makefile
+1
-1
arch/alpha/config.in
arch/alpha/config.in
+1
-1
arch/alpha/kernel/apecs.c
arch/alpha/kernel/apecs.c
+50
-17
arch/alpha/kernel/irq.c
arch/alpha/kernel/irq.c
+37
-4
arch/i386/boot/tools/build.c
arch/i386/boot/tools/build.c
+23
-5
drivers/block/ide-cd.c
drivers/block/ide-cd.c
+3
-1
drivers/cdrom/cdrom.c
drivers/cdrom/cdrom.c
+3
-3
drivers/net/de4x5.c
drivers/net/de4x5.c
+1
-5
drivers/scsi/README.ncr53c8xx
drivers/scsi/README.ncr53c8xx
+14
-4
drivers/scsi/eata.c
drivers/scsi/eata.c
+22
-6
drivers/scsi/eata.h
drivers/scsi/eata.h
+1
-1
drivers/scsi/ncr53c8xx.c
drivers/scsi/ncr53c8xx.c
+1
-1
drivers/scsi/qlogicisp.c
drivers/scsi/qlogicisp.c
+1
-1
drivers/scsi/scsi.c
drivers/scsi/scsi.c
+23
-8
drivers/scsi/sd.c
drivers/scsi/sd.c
+3
-3
drivers/scsi/u14-34f.c
drivers/scsi/u14-34f.c
+25
-7
drivers/scsi/u14-34f.h
drivers/scsi/u14-34f.h
+1
-1
drivers/sound/gus_wave.c
drivers/sound/gus_wave.c
+2
-2
drivers/sound/sb_common.c
drivers/sound/sb_common.c
+7
-6
fs/ext2/namei.c
fs/ext2/namei.c
+16
-6
fs/ncpfs/sock.c
fs/ncpfs/sock.c
+1
-1
include/asm-alpha/apecs.h
include/asm-alpha/apecs.h
+96
-0
include/linux/dirent.h
include/linux/dirent.h
+1
-1
include/linux/socket.h
include/linux/socket.h
+1
-0
mm/vmscan.c
mm/vmscan.c
+3
-1
net/ipv4/ip_output.c
net/ipv4/ip_output.c
+2
-0
net/ipv4/ip_sockglue.c
net/ipv4/ip_sockglue.c
+9
-12
scripts/Menuconfig
scripts/Menuconfig
+14
-8
No files found.
CREDITS
View file @
83257356
...
...
@@ -26,9 +26,11 @@ S: CH-1015 Lausanne
S: Switzerland
N: H. Peter Anvin
E: Peter.Anvin@linux.org
E: hpa@zytor.com
W: http://www.zytor.com/~hpa/
P: 2047/2A960705 BA 03 D3 2C 14 A8 A8 BD 1E DF FE 69 EE 35 BD 74
D: Author of the SYSLINUX boot loader, maintainer of the linux.* news
D: hierarchy
, responsible for various console and other
hacks
D: hierarchy
and the Linux Device List; various kernel
hacks
S: 4390 Albany Dr. #46
S: San Jose CA 95129
S: USA
...
...
@@ -886,11 +888,11 @@ S: Germany
N: Nigel Metheringham
E: Nigel.Metheringham@ThePLAnet.net
P: 1024/31455639 B7 99 BD B8 00 17 BD 46 C1 15 B8 AB 87 BC 25 FA
D: IP Masquerading work and minor fixes
S: Planet Online
S: The White House, Melbourne Street, LEEDS
S: LS2 7PS, UK
P: 1024/31455639 B7 99 BD B8 00 17 BD 46 C1 15 B8 AB 87 BC 25 FA
N: Craig Metz
E: cmetz@tjhsst.edu
...
...
@@ -1242,8 +1244,8 @@ S: USA
N: Leo Spiekman
E: spiekman@et.tudelft.nl
D: Optics Storage 8000AT cdrom driver
W: http://dutettk.et.tudelft.nl/~spiekman
D: Optics Storage 8000AT cdrom driver
S: Utrecht
S: The Netherlands
...
...
@@ -1258,13 +1260,13 @@ S: DK-1860 Frederiksberg C
S: Denmark
N: Drew Sullivan
W: http://www.ss.org/
E: drew@ss.org
W: http://www.ss.org/
P: 1024/ACFFA969 5A 9C 42 AB E4 24 82 31 99 56 00 BF D3 2B 25 46
D: iBCS2 developer
S: 22 Irvington Cres.
S: Willowdale, Ontario
S: Canada M2N 2Z1
P: 1024/ACFFA969 5A 9C 42 AB E4 24 82 31 99 56 00 BF D3 2B 25 46
N: Tommy Thorn
E: Tommy.Thorn@irisa.fr
...
...
Documentation/devices.tex
View file @
83257356
...
...
@@ -42,7 +42,7 @@ foo \kill}%
%
\title
{{
\bf
Linux Allocated Devices
}}
\author
{
Maintained by H. Peter Anvin
$
<
$
hpa@zytor.com
$
>
$}
\date
{
Last revised: Ju
ne
9, 1996
}
\date
{
Last revised: Ju
ly
9, 1996
}
\maketitle
%
\noindent
...
...
@@ -64,7 +64,9 @@ To have a major number allocated, or a minor number in situations
where that applies (e.g.
\
busmice), please contact me with the
appropriate device information. Also, if you have additional
information regarding any of the devices listed below, or if I have
made a mistake, I would greatly appreciate a note.
made a mistake, I would greatly appreciate a note. When sending me
mail, please include the word ``device'' in the subject so your mail
won't accidentally get buried!
Allocations marked (68k/Amiga) apply to Linux/68k on the Amiga
platform only. Allocations marked (68k/Atari) apply to Linux/68k on
...
...
@@ -163,6 +165,7 @@ reply.
\major
{
40
}{}{
char
}{
Matrox Meteor frame grabber
}
\major
{
}{}{
block
}{
Syquest EZ135 parallel port removable drive
}
\major
{
41
}{}{
char
}{
Yet Another Micro Monitor
}
\major
{
}{}{
block
}{
MicroSolutions BackPack parallel port CD-ROM
}
\major
{
42
}{}{}{
Demo/sample use
}
\major
{
43
}{}{
char
}{
isdn4linux virtual modem
}
\major
{
44
}{}{
char
}{
isdn4linux virtual modem -- alternate devices
}
...
...
@@ -175,7 +178,8 @@ reply.
\major
{
51
}{}{
char
}{
Baycom radio modem
}
\major
{
52
}{}{
char
}{
Spellcaster DataComm/BRI ISDN card
}
\major
{
53
}{}{
char
}{
BDM interface for remote debugging MC683xx microcontrollers
}
\major
{
54
}{
--59
}{}{
Unallocated
}
\major
{
54
}{}{
char
}{
Electrocardiognosis Holter serial card
}
\major
{
55
}{
--59
}{}{
Unallocated
}
\major
{
60
}{
--63
}{}{
Local/experimental use
}
\major
{
64
}{
--119
}{}{
Unallocated
}
\major
{
120
}{
--127
}{}{
Local/experimental use
}
...
...
@@ -460,6 +464,7 @@ physical disks.
\minor
{
136
}{
/dev/qcam0
}{
QuickCam on
{
\file
lp0
}}
\minor
{
137
}{
/dev/qcam1
}{
QuickCam on
{
\file
lp1
}}
\minor
{
138
}{
/dev/qcam2
}{
QuickCam on
{
\file
lp2
}}
\minor
{
139
}{
/dev/openprom
}{
SPARC OpenBoot PROM
}
\end{devicelist}
\noindent
...
...
@@ -989,6 +994,9 @@ Partitions are handled the same way as for IDE disks (see major number
\begin{devicelist}
\major
{
41
}{}{
char
}{
Yet Another Micro Monitor
}
\minor
{
0
}{
/dev/yamm
}{
Yet Another Micro Monitor
}
\\
\major
{
}{}{
block
}{
MicroSolutions BackPack parallel port CD-ROM
}
\minor
{
0
}{
/dev/bpcd
}{
BackPack CD-ROM
}
\end{devicelist}
\begin{devicelist}
...
...
@@ -1096,7 +1104,19 @@ interface. PD is the Motorola Public Domain Interface and ICD is the
commercial interface by P
\&
E.
\begin{devicelist}
\major
{
54
}{
--59
}{}{
Unallocated
}
\major
{
54
}{
Electrocardiognosis Holter serial card
}
\minor
{
0
}{
/dev/holter0
}{
First Holter port
}
\minor
{
1
}{
/dev/holter1
}{
Second Holter port
}
\minor
{
2
}{
/dev/holter2
}{
Third Holter port
}
\end{devicelist}
\noindent
A custom serial card used by Electrocardiognosis SRL
$
<
$
mseritan@ottonel.pub.ro
$
>
$
to transfer data from Holter 24-hour
heart monitoring equipment.
\begin{devicelist}
\major
{
55
}{
--59
}{}{
Unallocated
}
\end{devicelist}
\begin{devicelist}
...
...
Documentation/devices.txt
View file @
83257356
...
...
@@ -2,7 +2,7 @@
Maintained by H. Peter Anvin <hpa@zytor.com>
Last revised: June
9, 1996
Last revised: July
9, 1996
This list is the successor to Rick Miller's Linux Device List, which
he stopped maintaining when he got busy with other things in 1993. It
...
...
@@ -21,7 +21,9 @@ To have a major number allocated, or a minor number in situations
where that applies (e.g. busmice), please contact me with the
appropriate device information. Also, if you have additional
information regarding any of the devices listed below, or if I have
made a mistake, I would greatly appreciate a note.
made a mistake, I would greatly appreciate a note. When sending me
mail, please include the word "device" in the subject so your mail
won't accidentally get buried!
Allocations marked (68k/Amiga) apply to Linux/68k on the Amiga
platform only. Allocations marked (68k/Atari) apply to Linux/68k on
...
...
@@ -278,6 +280,7 @@ reply.
136 = /dev/qcam0 QuickCam on lp0
137 = /dev/qcam1 QuickCam on lp1
138 = /dev/qcam2 QuickCam on lp2
139 = /dev/openprom SPARC OpenBoot PROM
11 char Raw keyboard device
0 = /dev/kbd Raw keyboard device
...
...
@@ -689,6 +692,8 @@ reply.
41 char Yet Another Micro Monitor
0 = /dev/yamm Yet Another Micro Monitor
block MicroSolutions BackPack parallel port CD-ROM
0 = /dev/bpcd BackPack CD-ROM
42 Demo/sample use
...
...
@@ -771,7 +776,16 @@ reply.
Domain Interface and ICD is the commercial interface
by P&E.
54-59 UNALLOCATED
54 char Electrocardiognosis Holter serial card
0 = /dev/holter0 First Holter port
1 = /dev/holter1 Second Holter port
2 = /dev/holter2 Third Holter port
A custom serial card used by Electrocardiognosis SRL
<mseritan@ottonel.pub.ro> to transfer data from Holter
24-hour heart monitoring equipment.
55-59 UNALLOCATED
60-63 LOCAL/EXPERIMENTAL USE
Allocated for local/experimental use. For devices not
...
...
Makefile
View file @
83257356
VERSION
=
2
PATCHLEVEL
=
0
SUBLEVEL
=
4
SUBLEVEL
=
5
ARCH
=
i386
...
...
arch/alpha/boot/Makefile
View file @
83257356
...
...
@@ -56,7 +56,7 @@ vmlinux.nh: tools/build
vmlinux
:
$(TOPDIR)/vmlinux
cp
$(TOPDIR)
/vmlinux vmlinux
quick
strip vmlinux
strip vmlinux
tools/lxboot
:
tools/build
tools/build
>
tools/lxboot
...
...
arch/alpha/config.in
View file @
83257356
...
...
@@ -82,7 +82,7 @@ then
define_bool CONFIG_ALPHA_AVANTI y
fi
bool 'Echo console messages on /dev/ttyS
1
' CONFIG_SERIAL_ECHO
bool 'Echo console messages on /dev/ttyS
0 (COM1)
' CONFIG_SERIAL_ECHO
if [ "$CONFIG_PCI" = "y" ]; then
bool 'TGA Console Support' CONFIG_TGA_CONSOLE
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
...
...
arch/alpha/kernel/apecs.c
View file @
83257356
...
...
@@ -491,27 +491,30 @@ void apecs_machine_check(unsigned long vector, unsigned long la_ptr,
struct
pt_regs
*
regs
)
{
struct
el_common
*
mchk_header
;
struct
el_procdata
*
mchk_procdata
;
struct
el_apecs_sysdata_mcheck
*
mchk_sysdata
;
unsigned
long
*
ptr
;
int
i
;
mchk_header
=
(
struct
el_common
*
)
la_ptr
;
mchk_header
=
(
struct
el_common
*
)
la_ptr
;
mchk_procdata
=
(
struct
el_procdata
*
)
(
la_ptr
+
mchk_header
->
proc_offset
-
sizeof
(
mchk_procdata
->
paltemp
));
mchk_sysdata
=
(
struct
el_apecs_sysdata_mcheck
*
)(
la_ptr
+
mchk_header
->
sys_offset
);
DBG
((
"apecs_machine_check: vector=0x%lx la_ptr=0x%lx
\n
"
,
vector
,
la_ptr
));
DBG
((
" pc=0x%lx size=0x%x procoffset=0x%x sysoffset 0x%x
\n
"
,
regs
->
pc
,
mchk_header
->
size
,
mchk_header
->
proc_offset
,
mchk_header
->
sys_offset
));
DBG
((
"apecs_machine_check: expected %d DCSR 0x%lx PEAR 0x%lx
\n
"
,
apecs_mcheck_expected
,
mchk_sysdata
->
epic_dcsr
,
mchk_sysdata
->
epic_pear
));
#ifdef DEBUG
{
unsigned
long
*
ptr
;
int
i
;
ptr
=
(
unsigned
long
*
)
la_ptr
;
for
(
i
=
0
;
i
<
mchk_header
->
size
/
sizeof
(
long
);
i
+=
2
)
{
printk
(
"apecs_machine_check: vector=0x%lx la_ptr=0x%lx
\n
"
,
vector
,
la_ptr
);
printk
(
" pc=0x%lx size=0x%x procoffset=0x%x sysoffset 0x%x
\n
"
,
regs
->
pc
,
mchk_header
->
size
,
mchk_header
->
proc_offset
,
mchk_header
->
sys_offset
);
printk
(
"apecs_machine_check: expected %d DCSR 0x%lx PEAR 0x%lx
\n
"
,
apecs_mcheck_expected
,
mchk_sysdata
->
epic_dcsr
,
mchk_sysdata
->
epic_pear
);
ptr
=
(
unsigned
long
*
)
la_ptr
;
for
(
i
=
0
;
i
<
mchk_header
->
size
/
sizeof
(
long
);
i
+=
2
)
{
printk
(
" +%lx %lx %lx
\n
"
,
i
*
sizeof
(
long
),
ptr
[
i
],
ptr
[
i
+
1
]);
}
}
#endif
/* DEBUG */
...
...
@@ -520,9 +523,13 @@ void apecs_machine_check(unsigned long vector, unsigned long la_ptr,
* ignore the machine check.
*/
#ifdef CONFIG_ALPHA_MIKASA
/* for now on MIKASA, if it was expected, ignore it */
/* we need the details of the mcheck frame to really know... */
if
(
apecs_mcheck_expected
)
{
#define MCHK_NO_DEVSEL 0x205L
#define MCHK_NO_TABT 0x204L
if
(
apecs_mcheck_expected
&&
(((
unsigned
int
)
mchk_procdata
->
paltemp
[
0
]
==
MCHK_NO_DEVSEL
)
||
((
unsigned
int
)
mchk_procdata
->
paltemp
[
0
]
==
MCHK_NO_TABT
))
)
{
#else
if
(
apecs_mcheck_expected
&&
(
mchk_sysdata
->
epic_dcsr
&&
0x0c00UL
))
{
#endif
...
...
@@ -534,7 +541,33 @@ void apecs_machine_check(unsigned long vector, unsigned long la_ptr,
wrmces
(
0x7
);
mb
();
draina
();
DBG
((
"apecs_machine_check: EXPECTED
\n
"
));
}
else
if
(
vector
==
0x620
||
vector
==
0x630
)
{
wrmces
(
0x1f
);
/* disable correctable from now on */
mb
();
draina
();
printk
(
"apecs_machine_check: HW correctable (0x%lx)
\n
"
,
vector
);
}
else
{
printk
(
"APECS machine check:
\n
"
);
printk
(
" vector=0x%lx la_ptr=0x%lx
\n
"
,
vector
,
la_ptr
);
printk
(
" pc=0x%lx size=0x%x procoffset=0x%x sysoffset 0x%x
\n
"
,
regs
->
pc
,
mchk_header
->
size
,
mchk_header
->
proc_offset
,
mchk_header
->
sys_offset
);
printk
(
" expected %d DCSR 0x%lx PEAR 0x%lx
\n
"
,
apecs_mcheck_expected
,
mchk_sysdata
->
epic_dcsr
,
mchk_sysdata
->
epic_pear
);
ptr
=
(
unsigned
long
*
)
la_ptr
;
for
(
i
=
0
;
i
<
mchk_header
->
size
/
sizeof
(
long
);
i
+=
2
)
{
printk
(
" +%lx %lx %lx
\n
"
,
i
*
sizeof
(
long
),
ptr
[
i
],
ptr
[
i
+
1
]);
}
#if 0
/* doesn't work with MILO */
show_regs(regs);
#endif
}
}
#endif
/* CONFIG_ALPHA_APECS */
arch/alpha/kernel/irq.c
View file @
83257356
...
...
@@ -446,6 +446,41 @@ static inline void cabriolet_and_eb66p_device_interrupt(unsigned long vector,
restore_flags
(
flags
);
}
static
inline
void
mikasa_device_interrupt
(
unsigned
long
vector
,
struct
pt_regs
*
regs
)
{
unsigned
long
pld
;
unsigned
int
i
;
unsigned
long
flags
;
save_flags
(
flags
);
cli
();
/* read the interrupt summary registers */
pld
=
(((
unsigned
long
)
(
~
inw
(
0x534
))
&
0x0000ffffUL
)
<<
16
)
|
(((
unsigned
long
)
inb
(
0xa0
))
<<
8
)
|
((
unsigned
long
)
inb
(
0x20
));
#if 0
printk("[0x%08lx]", pld);
#endif
/*
* Now for every possible bit set, work through them and call
* the appropriate interrupt handler.
*/
while
(
pld
)
{
i
=
ffz
(
~
pld
);
pld
&=
pld
-
1
;
/* clear least bit set */
if
(
i
<
16
)
{
isa_device_interrupt
(
vector
,
regs
);
}
else
{
device_interrupt
(
i
,
i
,
regs
);
}
}
restore_flags
(
flags
);
}
static
inline
void
eb66_and_eb64p_device_interrupt
(
unsigned
long
vector
,
struct
pt_regs
*
regs
)
{
...
...
@@ -622,12 +657,10 @@ asmlinkage void do_entInt(unsigned long type, unsigned long vector, unsigned lon
srm_device_interrupt
(
vector
,
&
regs
);
#elif NR_IRQS == 33
cabriolet_and_eb66p_device_interrupt
(
vector
,
&
regs
);
#elif defined(CONFIG_ALPHA_MIKASA)
mikasa_device_interrupt
(
vector
,
&
regs
);
#elif NR_IRQS == 32
# ifdef CONFIG_ALPHA_MIKASA
# error we got a problem here Charlie MIKASA should be SRM console
# else
eb66_and_eb64p_device_interrupt
(
vector
,
&
regs
);
# endif
#elif NR_IRQS == 16
isa_device_interrupt
(
vector
,
&
regs
);
#endif
...
...
arch/i386/boot/tools/build.c
View file @
83257356
...
...
@@ -19,6 +19,7 @@
/*
* Changes by tytso to allow root device specification
* High loaded stuff by Hans Lermen & Werner Almesberger, Feb. 1996
* Cross compiling fixes by Gertjan van Wingerde, July 1996
*/
#include <stdio.h>
/* fprintf */
...
...
@@ -56,6 +57,7 @@ static int GCC_HEADER = sizeof(struct exec);
#define STRINGIFY(x) #x
typedef
union
{
int
i
;
long
l
;
short
s
[
2
];
char
b
[
4
];
...
...
@@ -72,6 +74,17 @@ long intel_long(long l)
return
t
.
l
;
}
int
intel_int
(
int
i
)
{
conv
t
;
t
.
b
[
0
]
=
i
&
0xff
;
i
>>=
8
;
t
.
b
[
1
]
=
i
&
0xff
;
i
>>=
8
;
t
.
b
[
2
]
=
i
&
0xff
;
i
>>=
8
;
t
.
b
[
3
]
=
i
&
0xff
;
i
>>=
8
;
return
t
.
i
;
}
short
intel_short
(
short
l
)
{
conv
t
;
...
...
@@ -94,8 +107,8 @@ void usage(void)
int
main
(
int
argc
,
char
**
argv
)
{
int
i
,
c
,
id
,
sz
;
unsigned
long
sys_size
;
int
i
,
c
,
id
,
sz
,
tmp_int
;
unsigned
long
sys_size
,
tmp_long
;
char
buf
[
1024
];
#ifndef __BFD__
struct
exec
*
ex
=
(
struct
exec
*
)
buf
;
...
...
@@ -180,12 +193,17 @@ int main(int argc, char ** argv)
#ifdef __BIG_KERNEL__
{
if
(
!
i
)
{
if
(
*
((
long
*
)(
&
buf
[
2
]))
!=
0x53726448
)
/* Working with memcpy because of alignment constraints
on Sparc - Gertjan */
memcpy
(
&
tmp_long
,
&
buf
[
2
],
sizeof
(
long
));
if
(
tmp_long
!=
intel_long
(
0x53726448
)
)
die
(
"Wrong magic in loader header of 'setup'"
);
if
(
*
((
int
*
)(
&
buf
[
6
]))
<
0x200
)
memcpy
(
&
tmp_int
,
&
buf
[
6
],
sizeof
(
int
));
if
(
tmp_int
<
intel_int
(
0x200
))
die
(
"Wrong version of loader header of 'setup'"
);
buf
[
0x11
]
=
1
;
/* LOADED_HIGH */
*
((
long
*
)(
&
buf
[
0x14
]))
=
0x100000
;
/* code32_start */
tmp_long
=
intel_long
(
0x100000
);
memcpy
(
&
buf
[
0x14
],
&
tmp_long
,
sizeof
(
long
));
/* code32_start */
}
#endif
if
(
write
(
1
,
buf
,
c
)
!=
c
)
...
...
drivers/block/ide-cd.c
View file @
83257356
...
...
@@ -104,6 +104,7 @@
* from Ben Galliart <bgallia@luc.edu> with
* special help from Jeff Lightfoot
* <jeffml@netcom.com>
* 3.15a July 9, 1996 -- Improved Sanyo 3 CD changer identification
*
* NOTE: Direct audio reads will only work on some types of drive.
* So far, i've received reports of success for Sony and Toshiba drives.
...
...
@@ -2657,7 +2658,8 @@ void ide_cdrom_setup (ide_drive_t *drive)
/* Sanyo 3 CD changer uses a non-standard command
for CD changing */
else
if
(
strcmp
(
drive
->
id
->
model
,
"CD-ROM CDR-C3 G"
)
==
0
)
{
else
if
((
strcmp
(
drive
->
id
->
model
,
"CD-ROM CDR-C3 G"
)
==
0
)
||
(
strcmp
(
drive
->
id
->
model
,
"CD-ROM CDR-C3G"
)
==
0
))
{
/* uses CD in slot 0 when value is set to 3 */
CDROM_STATE_FLAGS
(
drive
)
->
sanyo_slot
=
3
;
}
...
...
drivers/cdrom/cdrom.c
View file @
83257356
...
...
@@ -457,7 +457,7 @@ int cdrom_ioctl(struct inode *ip, struct file *fp,
}
case
CDROMPLAYMSF
:
{
struct
cdrom_msf
msf
;
GETARG
(
struct
cdrom_m
d
f
,
msf
);
GETARG
(
struct
cdrom_m
s
f
,
msf
);
return
cdo
->
audio_ioctl
(
dev
,
cmd
,
&
msf
);
}
case
CDROMPLAYTRKIND
:
{
...
...
@@ -467,13 +467,13 @@ int cdrom_ioctl(struct inode *ip, struct file *fp,
}
case
CDROMVOLCTRL
:
{
struct
cdrom_volctrl
volume
;
GETARG
(
struct
cdrom_volctl
,
volume
);
GETARG
(
struct
cdrom_volct
r
l
,
volume
);
return
cdo
->
audio_ioctl
(
dev
,
cmd
,
&
volume
);
}
case
CDROMVOLREAD
:
{
struct
cdrom_volctrl
volume
;
if
(
!
cdo
->
audio_ioctl
(
dev
,
cmd
,
&
volume
))
{
PUTARG
(
struct
cdrom_volctl
,
volume
);
PUTARG
(
struct
cdrom_volct
r
l
,
volume
);
return
0
;
}
return
-
EINVAL
;
...
...
drivers/net/de4x5.c
View file @
83257356
...
...
@@ -1918,12 +1918,8 @@ dc21040_autoconf(struct device *dev)
break
;
case
NC
:
#ifndef __alpha__
/* default to TP for all */
reset_init_sia
(
dev
,
0x8f01
,
0xffff
,
0x0000
);
#else
/* JAE: for Alpha, default to BNC/AUI, *not* TP */
reset_init_sia
(
dev
,
0x8f09
,
0x0705
,
0x0006
);
#endif
/* i386 */
if
(
lp
->
media
!=
lp
->
c_media
)
{
de4x5_dbg_media
(
dev
);
lp
->
c_media
=
lp
->
media
;
...
...
drivers/scsi/README.ncr53c8xx
View file @
83257356
...
...
@@ -29,6 +29,7 @@ Written by Gerard Roudier <groudier@club-internet.fr>
14. Control commands under linux-1.2.13
15. Known problems
15.1 Tagged commands with Iomega Jaz device
15.2 Tagged command queueing cannot be disabled at run time
===============================================================================
...
...
@@ -189,8 +190,9 @@ Chip Device id Revision Id
The profiling informations are updated upon completion of scsi commands.
The data structure is allocated and zeroed when the host adapter is
attached. So, if the driver is a module you can reset the profiling data
by unloading and reloading the driver.
attached. So, if the driver is a module, the profile counters are cleared each
time the driver is loaded.
The "clearprof" command allow to clear these counters at any time.
The following counters are available:
("num" prefix means "number of", "ms" means milli-seconds)
...
...
@@ -290,6 +292,7 @@ Available commands:
target: target number
tags: number of concurrent tagged commands
must not be greater than SCSI_NCR_MAX_TAGS (default: 4)
must not be lower that 1 (see: known problems)
8.4 Set order type for tagged command
...
...
@@ -316,10 +319,10 @@ Available commands:
tiny: print minimal debugging informations
timing: print timing informations of the ncr chip.
nego: print informations about scsi negotiations
phase: printf
informations on script interruptions
phase: print
informations on script interruptions
8.
5
Clear profile counters
8.
6
Clear profile counters
clearprof
...
...
@@ -556,5 +559,12 @@ The other problems that may appear are timeouts. The only way to avoid timeouts
seems to edit linux/drivers/scsi/sd.c and to increase the current timeout
values.
15.2 Tagged command queuing cannot be disabled at run time
Once Tagged command queuing has been enabled, the driver will not allow to
disable this feature ("settags <target> 0" is not supported).
This problem is due to some limitations of the code added to the Linux version
of the driver.
===============================================================================
End of NCR53C8XX driver README file
drivers/scsi/eata.c
View file @
83257356
/*
* eata.c - Low-level driver for EATA/DMA SCSI host adapters.
*
* 09 Jul 1996 rev. 2.11 for linux 2.0.4
* Number of internal retries is now limited.
*
* 16 Apr 1996 rev. 2.10 for linux 1.3.90
* New argument "reset_flags" to the reset routine.
*
...
...
@@ -156,6 +159,7 @@ struct proc_dir_entry proc_scsi_eata2x = {
#define MAX_BOARDS 18
#define MAX_MAILBOXES 64
#define MAX_SGLIST 64
#define MAX_INTERNAL_RETRIES 64
#define MAX_CMD_PER_LUN 2
#define FALSE 0
...
...
@@ -313,6 +317,8 @@ struct hostdata {
int
in_reset
;
/* True if board is doing a reset */
int
target_time_out
[
MAX_TARGET
];
/* N. of timeout errors on target */
int
target_reset
[
MAX_TARGET
];
/* If TRUE redo operation on target */
unsigned
int
retries
;
/* Number of internal retries */
unsigned
long
last_retried_pid
;
/* Pid of last retried command */
unsigned
char
subversion
;
/* Bus type, either ISA or ESA */
unsigned
char
protocol_rev
;
/* EATA 2.0 rev., 'A' or 'B' or 'C' */
struct
mssp
sp
[
MAX_MAILBOXES
];
/* Returned status for this board */
...
...
@@ -802,6 +808,8 @@ int eata2x_reset (Scsi_Cmnd *SCarg, unsigned int reset_flags) {
return
SCSI_RESET_ERROR
;
}
HD
(
j
)
->
retries
=
0
;
for
(
k
=
0
;
k
<
MAX_TARGET
;
k
++
)
HD
(
j
)
->
target_reset
[
k
]
=
TRUE
;
for
(
k
=
0
;
k
<
MAX_TARGET
;
k
++
)
HD
(
j
)
->
target_time_out
[
k
]
=
0
;
...
...
@@ -1008,6 +1016,8 @@ static void eata2x_interrupt_handler(int irq, void *dev_id, struct pt_regs * reg
HD
(
j
)
->
target_time_out
[
SCpnt
->
target
]
=
0
;
if
(
HD
(
j
)
->
last_retried_pid
==
SCpnt
->
pid
)
HD
(
j
)
->
retries
=
0
;
break
;
case
ASST
:
/* Selection Time Out */
case
0x02
:
/* Command Time Out */
...
...
@@ -1020,17 +1030,23 @@ static void eata2x_interrupt_handler(int irq, void *dev_id, struct pt_regs * reg
}
break
;
/* Perform a limited number of internal retries */
case
0x03
:
/* SCSI Bus Reset Received */
case
0x04
:
/* Initial Controller Power-up */
if
(
SCpnt
->
device
->
type
!=
TYPE_TAPE
)
status
=
DID_BUS_BUSY
<<
16
;
else
status
=
DID_ERROR
<<
16
;
for
(
k
=
0
;
k
<
MAX_TARGET
;
k
++
)
HD
(
j
)
->
target_reset
[
k
]
=
TRUE
;
if
(
SCpnt
->
device
->
type
!=
TYPE_TAPE
&&
HD
(
j
)
->
retries
<
MAX_INTERNAL_RETRIES
)
{
status
=
DID_BUS_BUSY
<<
16
;
HD
(
j
)
->
retries
++
;
HD
(
j
)
->
last_retried_pid
=
SCpnt
->
pid
;
}
else
status
=
DID_ERROR
<<
16
;
break
;
case
0x07
:
/* Bus Parity Error */
case
0x0c
:
/* Controller Ram Parity */
...
...
@@ -1058,7 +1074,7 @@ static void eata2x_interrupt_handler(int irq, void *dev_id, struct pt_regs * reg
spp
->
adapter_status
!=
ASST
&&
HD
(
j
)
->
iocount
<=
1000
)
||
do_trace
)
#endif
printk
(
"%s: ihdlr, mbox %d, err 0x%x:%x,"
\
printk
(
"%s: ihdlr, mbox %
2
d, err 0x%x:%x,"
\
" target %d:%d, pid %ld, count %d.
\n
"
,
BN
(
j
),
i
,
spp
->
adapter_status
,
spp
->
target_status
,
SCpnt
->
target
,
SCpnt
->
lun
,
SCpnt
->
pid
,
HD
(
j
)
->
iocount
);
...
...
drivers/scsi/eata.h
View file @
83257356
...
...
@@ -11,7 +11,7 @@ int eata2x_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
int
eata2x_abort
(
Scsi_Cmnd
*
);
int
eata2x_reset
(
Scsi_Cmnd
*
,
unsigned
int
);
#define EATA_VERSION "2.1
0
.00"
#define EATA_VERSION "2.1
1
.00"
#define EATA { \
...
...
drivers/scsi/ncr53c8xx.c
View file @
83257356
...
...
@@ -8165,7 +8165,7 @@ printf("ncr_user_command: retv=%d\n", retv);
#endif
}
else
{
if
(
*
start
)
if
(
start
)
*
start
=
buffer
;
retv
=
ncr_host_info
(
ncb
,
buffer
,
offset
,
length
);
}
...
...
drivers/scsi/qlogicisp.c
View file @
83257356
...
...
@@ -63,7 +63,7 @@
the latest firmware provided by QLogic. This may be an earlier/later
revision than supplied by your board. */
#define RELOAD_FIRMWARE
0
#define RELOAD_FIRMWARE
1
/* Set the following macro to 1 to reload the ISP1020's defaults from nvram.
If you are not sure of your settings, leave this alone, the driver will
...
...
drivers/scsi/scsi.c
View file @
83257356
...
...
@@ -92,7 +92,7 @@ static int update_timeout (Scsi_Cmnd *, int);
static
void
print_inquiry
(
unsigned
char
*
data
);
static
void
scsi_times_out
(
Scsi_Cmnd
*
SCpnt
);
static
int
scan_scsis_single
(
int
channel
,
int
dev
,
int
lun
,
int
*
max_scsi_dev
,
Scsi_Device
**
SDpnt
,
Scsi_Cmnd
*
SCpnt
,
int
*
sparse_lun
,
Scsi_Device
**
SDpnt
,
Scsi_Cmnd
*
SCpnt
,
struct
Scsi_Host
*
shpnt
,
char
*
scsi_result
);
void
scsi_build_commandblocks
(
Scsi_Device
*
SDpnt
);
...
...
@@ -226,6 +226,7 @@ static void scsi_dump_status(void);
#define BLIST_KEY 0x08
#define BLIST_SINGLELUN 0x10
#define BLIST_NOTQ 0x20
#define BLIST_SPARSELUN 0x40
struct
dev_info
{
const
char
*
vendor
;
...
...
@@ -292,7 +293,8 @@ static struct dev_info device_list[] =
{
"NRC"
,
"MBR-7"
,
"*"
,
BLIST_FORCELUN
|
BLIST_SINGLELUN
},
{
"PIONEER"
,
"CD-ROM DRM-602X"
,
"*"
,
BLIST_FORCELUN
|
BLIST_SINGLELUN
},
{
"PIONEER"
,
"CD-ROM DRM-604X"
,
"*"
,
BLIST_FORCELUN
|
BLIST_SINGLELUN
},
{
"EMULEX"
,
"MD21/S2 ESDI"
,
"*"
,
BLIST_SINGLELUN
},
{
"EMULEX"
,
"MD21/S2 ESDI"
,
"*"
,
BLIST_SINGLELUN
},
{
"CANON"
,
"IPUBJD"
,
"*"
,
BLIST_SPARSELUN
},
/*
* Must be at end of list...
*/
...
...
@@ -415,7 +417,7 @@ static void scan_scsis (struct Scsi_Host *shpnt, unchar hardcoded,
unsigned
char
scsi_result0
[
256
];
unsigned
char
*
scsi_result
;
Scsi_Device
*
SDpnt
;
int
max_dev_lun
;
int
max_dev_lun
,
sparse_lun
;
Scsi_Cmnd
*
SCpnt
;
SCpnt
=
(
Scsi_Cmnd
*
)
scsi_init_malloc
(
sizeof
(
Scsi_Cmnd
),
GFP_ATOMIC
|
GFP_DMA
);
...
...
@@ -449,8 +451,8 @@ static void scan_scsis (struct Scsi_Host *shpnt, unchar hardcoded,
if
(
dev
>=
shpnt
->
max_id
)
goto
leave
;
lun
=
hlun
;
if
(
lun
>=
shpnt
->
max_lun
)
goto
leave
;
scan_scsis_single
(
channel
,
dev
,
lun
,
&
max_dev_lun
,
&
SDpnt
,
SCpnt
,
shpnt
,
scsi_result
);
scan_scsis_single
(
channel
,
dev
,
lun
,
&
max_dev_lun
,
&
sparse_lun
,
&
SDpnt
,
SCpnt
,
shpnt
,
scsi_result
);
if
(
SDpnt
!=
oldSDpnt
)
{
/* it could happen the blockdevice hasn't yet been inited */
...
...
@@ -483,9 +485,12 @@ static void scan_scsis (struct Scsi_Host *shpnt, unchar hardcoded,
*/
max_dev_lun
=
(
max_scsi_luns
<
shpnt
->
max_lun
?
max_scsi_luns
:
shpnt
->
max_lun
);
sparse_lun
=
0
;
for
(
lun
=
0
;
lun
<
max_dev_lun
;
++
lun
)
{
if
(
!
scan_scsis_single
(
channel
,
dev
,
lun
,
&
max_dev_lun
,
&
SDpnt
,
SCpnt
,
shpnt
,
scsi_result
))
&
sparse_lun
,
&
SDpnt
,
SCpnt
,
shpnt
,
scsi_result
)
&&
!
sparse_lun
)
break
;
/* break means don't probe further for luns!=0 */
}
/* for lun ends */
}
/* if this_id != id ends */
...
...
@@ -528,8 +533,8 @@ static void scan_scsis (struct Scsi_Host *shpnt, unchar hardcoded,
* Global variables used : scsi_devices(linked list)
*/
int
scan_scsis_single
(
int
channel
,
int
dev
,
int
lun
,
int
*
max_dev_lun
,
Scsi_Device
**
SDpnt2
,
Scsi_Cmnd
*
SCpnt
,
struct
Scsi_Host
*
shpnt
,
char
*
scsi_result
)
int
*
sparse_lun
,
Scsi_Device
**
SDpnt2
,
Scsi_Cmnd
*
SCpnt
,
struct
Scsi_Host
*
shpnt
,
char
*
scsi_result
)
{
unsigned
char
scsi_cmd
[
12
];
struct
Scsi_Device_Template
*
sdtpnt
;
...
...
@@ -795,6 +800,16 @@ int scan_scsis_single (int channel, int dev, int lun, int *max_dev_lun,
if
(
bflags
&
BLIST_SINGLELUN
)
SDpnt
->
single_lun
=
1
;
/*
* If this device is known to support sparse multiple units, override the
* other settings, and scan all of them.
*/
if
(
bflags
&
BLIST_SPARSELUN
)
{
*
max_dev_lun
=
8
;
*
sparse_lun
=
1
;
return
1
;
}
/*
* If this device is known to support multiple units, override the other
* settings, and scan all of them.
...
...
drivers/scsi/sd.c
View file @
83257356
...
...
@@ -1054,7 +1054,7 @@ static int sd_init_onedisk(int i)
* Issue command to spin up drive for these cases. */
if
(
the_result
&&
!
rscsi_disks
[
i
].
device
->
removable
&&
SCpnt
->
sense_buffer
[
2
]
==
NOT_READY
)
{
int
time1
;
unsigned
long
time1
;
if
(
!
spintime
){
printk
(
"sd%c: Spinning up disk..."
,
'a'
+
i
);
cmd
[
0
]
=
START_STOP
;
...
...
@@ -1081,8 +1081,8 @@ static int sd_init_onedisk(int i)
spintime
=
jiffies
;
}
time1
=
jiffies
;
while
(
jiffies
<
time1
+
HZ
);
/* Wait 1 second for next try */
time1
=
jiffies
+
HZ
;
while
(
jiffies
<
time1
);
/* Wait 1 second for next try */
printk
(
"."
);
}
}
while
(
the_result
&&
spintime
&&
spintime
+
100
*
HZ
>
jiffies
);
...
...
drivers/scsi/u14-34f.c
View file @
83257356
/*
* u14-34f.c - Low-level driver for UltraStor 14F/34F SCSI host adapters.
*
* 09 Jul 1996 rev. 2.11 for linux 2.0.4
* "Data over/under-run" no longer implies a redo on all targets.
* Number of internal retries is now limited.
*
* 16 Apr 1996 rev. 2.10 for linux 1.3.90
* New argument "reset_flags" to the reset routine.
*
...
...
@@ -199,6 +203,7 @@ struct proc_dir_entry proc_scsi_u14_34f = {
#define MAX_MAILBOXES 16
#define MAX_SGLIST 32
#define MAX_SAFE_SGLIST 16
#define MAX_INTERNAL_RETRIES 64
#define MAX_CMD_PER_LUN 2
#define FALSE 0
...
...
@@ -280,6 +285,8 @@ struct hostdata {
int
in_reset
;
/* True if board is doing a reset */
int
target_time_out
[
MAX_TARGET
];
/* N. of timeout errors on target */
int
target_reset
[
MAX_TARGET
];
/* If TRUE redo operation on target */
unsigned
int
retries
;
/* Number of internal retries */
unsigned
long
last_retried_pid
;
/* Pid of last retried command */
unsigned
char
subversion
;
/* Bus type, either ISA or ESA */
unsigned
char
heads
;
unsigned
char
sectors
;
...
...
@@ -763,6 +770,8 @@ int u14_34f_reset(Scsi_Cmnd * SCarg, unsigned int reset_flags) {
return
SCSI_RESET_ERROR
;
}
HD
(
j
)
->
retries
=
0
;
for
(
k
=
0
;
k
<
MAX_TARGET
;
k
++
)
HD
(
j
)
->
target_reset
[
k
]
=
TRUE
;
for
(
k
=
0
;
k
<
MAX_TARGET
;
k
++
)
HD
(
j
)
->
target_time_out
[
k
]
=
0
;
...
...
@@ -972,6 +981,8 @@ static void u14_34f_interrupt_handler(int irq, void *dev_id, struct pt_regs * re
HD
(
j
)
->
target_time_out
[
SCpnt
->
target
]
=
0
;
if
(
HD
(
j
)
->
last_retried_pid
==
SCpnt
->
pid
)
HD
(
j
)
->
retries
=
0
;
break
;
case
ASST
:
/* Selection Time Out */
...
...
@@ -983,20 +994,27 @@ static void u14_34f_interrupt_handler(int irq, void *dev_id, struct pt_regs * re
}
break
;
case
0x92
:
/* Data over/under-run */
/* Perform a limited number of internal retries */
case
0x93
:
/* Unexpected bus free */
case
0x94
:
/* Target bus phase sequence failure */
case
0x96
:
/* Illegal SCSI command */
case
0xa3
:
/* SCSI bus reset error */
if
(
SCpnt
->
device
->
type
!=
TYPE_TAPE
)
status
=
DID_BUS_BUSY
<<
16
;
else
status
=
DID_ERROR
<<
16
;
for
(
k
=
0
;
k
<
MAX_TARGET
;
k
++
)
HD
(
j
)
->
target_reset
[
k
]
=
TRUE
;
case
0x92
:
/* Data over/under-run */
if
(
SCpnt
->
device
->
type
!=
TYPE_TAPE
&&
HD
(
j
)
->
retries
<
MAX_INTERNAL_RETRIES
)
{
status
=
DID_BUS_BUSY
<<
16
;
HD
(
j
)
->
retries
++
;
HD
(
j
)
->
last_retried_pid
=
SCpnt
->
pid
;
}
else
status
=
DID_ERROR
<<
16
;
break
;
case
0x01
:
/* Invalid command */
case
0x02
:
/* Invalid parameters */
...
...
@@ -1023,7 +1041,7 @@ static void u14_34f_interrupt_handler(int irq, void *dev_id, struct pt_regs * re
spp
->
adapter_status
!=
ASST
&&
HD
(
j
)
->
iocount
<=
1000
)
||
do_trace
)
#endif
printk
(
"%s: ihdlr, mbox %d, err 0x%x:%x,"
\
printk
(
"%s: ihdlr, mbox %
2
d, err 0x%x:%x,"
\
" target %d:%d, pid %ld, count %d.
\n
"
,
BN
(
j
),
i
,
spp
->
adapter_status
,
spp
->
target_status
,
SCpnt
->
target
,
SCpnt
->
lun
,
SCpnt
->
pid
,
HD
(
j
)
->
iocount
);
...
...
drivers/scsi/u14-34f.h
View file @
83257356
...
...
@@ -10,7 +10,7 @@ int u14_34f_abort(Scsi_Cmnd *);
int
u14_34f_reset
(
Scsi_Cmnd
*
,
unsigned
int
);
int
u14_34f_biosparam
(
Disk
*
,
kdev_t
,
int
*
);
#define U14_34F_VERSION "2.1
0
.00"
#define U14_34F_VERSION "2.1
1
.00"
#define ULTRASTOR_14_34F { \
NULL,
/* Ptr for modules */
\
...
...
drivers/sound/gus_wave.c
View file @
83257356
...
...
@@ -1549,7 +1549,7 @@ guswave_start_note2 (int dev, int voice, int note_num, int volume)
gus_write_addr
(
0x02
,
sample_ptrs
[
sample
]
+
samples
[
sample
].
loop_start
,
samples
[
sample
].
fractions
&
0x0f
,
is16bits
);
/* Loop start location */
gus_write_addr
(
0x04
,
sample_ptrs
[
sample
]
+
samples
[
sample
].
l
en
,
gus_write_addr
(
0x04
,
sample_ptrs
[
sample
]
+
samples
[
sample
].
l
oop_end
,
(
samples
[
sample
].
fractions
>>
4
)
&
0x0f
,
is16bits
);
/* Loop end location */
}
...
...
@@ -1560,7 +1560,7 @@ guswave_start_note2 (int dev, int voice, int note_num, int volume)
voices
[
voice
].
loop_irq_parm
=
1
;
gus_write_addr
(
0x02
,
sample_ptrs
[
sample
],
0
,
is16bits
);
/* Loop start location */
gus_write_addr
(
0x04
,
sample_ptrs
[
sample
]
+
samples
[
sample
].
l
oop_end
-
1
,
gus_write_addr
(
0x04
,
sample_ptrs
[
sample
]
+
samples
[
sample
].
l
en
-
1
,
(
samples
[
sample
].
fractions
>>
4
)
&
0x0f
,
is16bits
);
/* Loop end location */
}
...
...
drivers/sound/sb_common.c
View file @
83257356
...
...
@@ -130,14 +130,14 @@ sbintr (int irq, void *dev_id, struct pt_regs *dummy)
sb_devc
*
devc
=
irq2devc
[
irq
];
devc
->
irq_ok
=
1
;
if
(
devc
==
NULL
||
devc
->
irq
!=
irq
)
{
DEB
(
printk
(
"sbintr: Bogus interrupt IRQ%d
\n
"
,
irq
));
return
;
}
devc
->
irq_ok
=
1
;
if
(
devc
->
model
==
MDL_SB16
)
{
...
...
@@ -671,10 +671,14 @@ sb_dsp_init (struct address_info *hw_config)
devc
->
dev
=
num_audiodevs
;
devc
->
caps
=
hw_config
->
driver_use_1
;
irq2devc
[
hw_config
->
irq
]
=
devc
;
devc
->
irq_ok
=
0
;
if
(
snd_set_irq_handler
(
hw_config
->
irq
,
sbintr
,
"sound blaster"
,
devc
->
osp
)
<
0
)
{
printk
(
"SB: Can't allocate IRQ%d
\n
"
,
hw_config
->
irq
);
irq2devc
[
hw_config
->
irq
]
=
NULL
;
return
;
}
...
...
@@ -697,9 +701,6 @@ sb_dsp_init (struct address_info *hw_config)
}
}
irq2devc
[
hw_config
->
irq
]
=
devc
;
devc
->
irq_ok
=
0
;
for
(
n
=
0
;
n
<
3
&&
devc
->
irq_ok
==
0
;
n
++
)
if
(
sb_dsp_command
(
devc
,
0xf2
))
/* Cause interrupt immediately */
{
...
...
@@ -1173,7 +1174,7 @@ probe_sbmpu (struct address_info *hw_config)
}
hw_config
->
name
=
"Sound Blaster 16"
;
hw_config
->
irq
=
-
devc
->
irq
;
sb16_set_mpu_port
(
devc
,
hw_config
)
sb16_set_mpu_port
(
devc
,
hw_config
)
;
break
;
case
MDL_ESS
:
...
...
fs/ext2/namei.c
View file @
83257356
...
...
@@ -163,10 +163,12 @@ int ext2_lookup (struct inode * dir, const char * name, int len,
return
-
ENOENT
;
if
(
!
S_ISDIR
(
dir
->
i_mode
))
{
iput
(
dir
);
return
-
ENO
ENT
;
return
-
ENO
TDIR
;
}
if
(
len
>
EXT2_NAME_LEN
)
if
(
len
>
EXT2_NAME_LEN
)
{
iput
(
dir
);
return
-
ENAMETOOLONG
;
}
if
(
dcache_lookup
(
dir
,
name
,
len
,
&
ino
))
{
if
(
!
ino
)
{
iput
(
dir
);
...
...
@@ -407,8 +409,10 @@ int ext2_mknod (struct inode * dir, const char * name, int len, int mode,
if
(
!
dir
)
return
-
ENOENT
;
if
(
len
>
EXT2_NAME_LEN
)
if
(
len
>
EXT2_NAME_LEN
)
{
iput
(
dir
);
return
-
ENAMETOOLONG
;
}
bh
=
ext2_find_entry
(
dir
,
name
,
len
,
&
de
);
if
(
bh
)
{
brelse
(
bh
);
...
...
@@ -472,8 +476,10 @@ int ext2_mkdir (struct inode * dir, const char * name, int len, int mode)
if
(
!
dir
)
return
-
ENOENT
;
if
(
len
>
EXT2_NAME_LEN
)
if
(
len
>
EXT2_NAME_LEN
)
{
iput
(
dir
);
return
-
ENAMETOOLONG
;
}
bh
=
ext2_find_entry
(
dir
,
name
,
len
,
&
de
);
if
(
bh
)
{
brelse
(
bh
);
...
...
@@ -611,8 +617,10 @@ int ext2_rmdir (struct inode * dir, const char * name, int len)
if
(
!
dir
)
return
-
ENOENT
;
inode
=
NULL
;
if
(
len
>
EXT2_NAME_LEN
)
if
(
len
>
EXT2_NAME_LEN
)
{
iput
(
dir
);
return
-
ENAMETOOLONG
;
}
bh
=
ext2_find_entry
(
dir
,
name
,
len
,
&
de
);
retval
=
-
ENOENT
;
if
(
!
bh
)
...
...
@@ -699,8 +707,10 @@ int ext2_unlink (struct inode * dir, const char * name, int len)
return
-
ENOENT
;
retval
=
-
ENOENT
;
inode
=
NULL
;
if
(
len
>
EXT2_NAME_LEN
)
if
(
len
>
EXT2_NAME_LEN
)
{
iput
(
dir
);
return
-
ENAMETOOLONG
;
}
bh
=
ext2_find_entry
(
dir
,
name
,
len
,
&
de
);
if
(
!
bh
)
goto
end_unlink
;
...
...
fs/ncpfs/sock.c
View file @
83257356
...
...
@@ -599,7 +599,7 @@ ncp_request(struct ncp_server *server, int function)
if
(
server
->
has_subfunction
!=
0
)
{
*
(
__u16
*
)
&
(
h
->
data
[
0
])
=
request_size
-
2
;
*
(
__u16
*
)
&
(
h
->
data
[
0
])
=
htons
(
request_size
-
2
)
;
}
h
->
type
=
NCP_REQUEST
;
...
...
include/asm-alpha/apecs.h
View file @
83257356
...
...
@@ -414,6 +414,77 @@ extern unsigned long apecs_init (unsigned long mem_start,
/*
* Data structure for handling APECS machine checks:
*/
#ifdef CONFIG_ALPHA_MIKASA
struct
el_apecs_sysdata_mcheck
{
unsigned
long
coma_gcr
;
unsigned
long
coma_edsr
;
unsigned
long
coma_ter
;
unsigned
long
coma_elar
;
unsigned
long
coma_ehar
;
unsigned
long
coma_ldlr
;
unsigned
long
coma_ldhr
;
unsigned
long
coma_base0
;
unsigned
long
coma_base1
;
unsigned
long
coma_base2
;
unsigned
long
coma_base3
;
unsigned
long
coma_cnfg0
;
unsigned
long
coma_cnfg1
;
unsigned
long
coma_cnfg2
;
unsigned
long
coma_cnfg3
;
unsigned
long
epic_dcsr
;
unsigned
long
epic_pear
;
unsigned
long
epic_sear
;
unsigned
long
epic_tbr1
;
unsigned
long
epic_tbr2
;
unsigned
long
epic_pbr1
;
unsigned
long
epic_pbr2
;
unsigned
long
epic_pmr1
;
unsigned
long
epic_pmr2
;
unsigned
long
epic_harx1
;
unsigned
long
epic_harx2
;
unsigned
long
epic_pmlt
;
unsigned
long
epic_tag0
;
unsigned
long
epic_tag1
;
unsigned
long
epic_tag2
;
unsigned
long
epic_tag3
;
unsigned
long
epic_tag4
;
unsigned
long
epic_tag5
;
unsigned
long
epic_tag6
;
unsigned
long
epic_tag7
;
unsigned
long
epic_data0
;
unsigned
long
epic_data1
;
unsigned
long
epic_data2
;
unsigned
long
epic_data3
;
unsigned
long
epic_data4
;
unsigned
long
epic_data5
;
unsigned
long
epic_data6
;
unsigned
long
epic_data7
;
unsigned
long
pceb_vid
;
unsigned
long
pceb_did
;
unsigned
long
pceb_revision
;
unsigned
long
pceb_command
;
unsigned
long
pceb_status
;
unsigned
long
pceb_latency
;
unsigned
long
pceb_control
;
unsigned
long
pceb_arbcon
;
unsigned
long
pceb_arbpri
;
unsigned
long
esc_id
;
unsigned
long
esc_revision
;
unsigned
long
esc_int0
;
unsigned
long
esc_int1
;
unsigned
long
esc_elcr0
;
unsigned
long
esc_elcr1
;
unsigned
long
esc_last_eisa
;
unsigned
long
esc_nmi_stat
;
unsigned
long
pci_ir
;
unsigned
long
pci_imr
;
unsigned
long
svr_mgr
;
};
#else
/* CONFIG_ALPHA_MIKASA */
/* this for the normal APECS machines */
struct
el_apecs_sysdata_mcheck
{
unsigned
long
coma_gcr
;
unsigned
long
coma_edsr
;
...
...
@@ -457,6 +528,31 @@ struct el_apecs_sysdata_mcheck {
unsigned
long
epic_data6
;
unsigned
long
epic_data7
;
};
#endif
/* CONFIG_ALPHA_MIKASA */
struct
el_procdata
{
unsigned
long
paltemp
[
32
];
/* PAL TEMP REGS. */
/* EV4-specific fields */
unsigned
long
exc_addr
;
/* Address of excepting instruction. */
unsigned
long
exc_sum
;
/* Summary of arithmetic traps. */
unsigned
long
exc_mask
;
/* Exception mask (from exc_sum). */
unsigned
long
iccsr
;
/* IBox hardware enables. */
unsigned
long
pal_base
;
/* Base address for PALcode. */
unsigned
long
hier
;
/* Hardware Interrupt Enable. */
unsigned
long
hirr
;
/* Hardware Interrupt Request. */
unsigned
long
csr
;
/* D-stream fault info. */
unsigned
long
dc_stat
;
/* D-cache status (ECC/Parity Err). */
unsigned
long
dc_addr
;
/* EV3 Phys Addr for ECC/DPERR. */
unsigned
long
abox_ctl
;
/* ABox Control Register. */
unsigned
long
biu_stat
;
/* BIU Status. */
unsigned
long
biu_addr
;
/* BUI Address. */
unsigned
long
biu_ctl
;
/* BIU Control. */
unsigned
long
fill_syndrome
;
/* For correcting ECC errors. */
unsigned
long
fill_addr
;
/* Cache block which was being read */
unsigned
long
va
;
/* Effective VA of fault or miss. */
unsigned
long
bc_tag
;
/* Backup Cache Tag Probe Results.*/
};
#define RTC_PORT(x) (0x70 + (x))
#define RTC_ADDR(x) (0x80 | (x))
...
...
include/linux/dirent.h
View file @
83257356
...
...
@@ -3,7 +3,7 @@
struct
dirent
{
long
d_ino
;
off_t
d_off
;
__kernel_off_t
d_off
;
unsigned
short
d_reclen
;
char
d_name
[
256
];
/* We must not include limits.h! */
};
...
...
include/linux/socket.h
View file @
83257356
...
...
@@ -102,6 +102,7 @@ struct msghdr
#define IPTOS_LOWDELAY 0x10
#define IPTOS_THROUGHPUT 0x08
#define IPTOS_RELIABILITY 0x04
#define IPTOS_MINCOST 0x02
#define IP_TTL 2
#define IP_HDRINCL 3
#define IP_OPTIONS 4
...
...
mm/vmscan.c
View file @
83257356
...
...
@@ -109,7 +109,7 @@ static inline int try_to_swap_out(struct task_struct * tsk, struct vm_area_struc
if
(
page_map
->
count
!=
1
)
return
0
;
if
(
!
(
entry
=
get_swap_page
()))
return
0
;
return
-
1
;
/* Aieee!!! Out of swap space! */
vma
->
vm_mm
->
rss
--
;
flush_cache_page
(
vma
,
address
);
set_pte
(
page_table
,
__pte
(
entry
));
...
...
@@ -312,6 +312,8 @@ static int swap_out(unsigned int priority, int dma, int wait)
if
(
!--
p
->
swap_cnt
)
swap_task
++
;
switch
(
swap_out_process
(
p
,
dma
,
wait
))
{
case
-
1
:
return
0
;
case
0
:
if
(
p
->
swap_cnt
)
swap_task
++
;
...
...
net/ipv4/ip_output.c
View file @
83257356
...
...
@@ -842,6 +842,8 @@ int ip_build_xmit(struct sock *sk,
NULL
,
NULL
,
0
)
>
0
)
skb
->
arp
=
1
;
}
else
skb
->
arp
=
1
;
/*
* Find where to start putting bytes.
...
...
net/ipv4/ip_sockglue.c
View file @
83257356
...
...
@@ -178,17 +178,18 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int opt
kfree_s
(
old_opt
,
sizeof
(
struct
optlen
)
+
old_opt
->
optlen
);
return
0
;
}
case
IP_TOS
:
/* This sets both TOS and Precedence */
if
(
val
<
0
||
val
>
63
)
/* Reject setting of unused bits */
case
IP_TOS
:
/* This sets both TOS and Precedence */
if
(
val
&
~
0xfe
)
/* Reject setting of unused bits */
return
-
EINVAL
;
if
((
val
&
7
)
>
4
&&
!
suser
())
/* Only root can set Prec>4 */
if
((
val
>>
5
)
>
4
&&
!
suser
())
/* Only root can set Prec>4 */
return
-
EPERM
;
sk
->
ip_tos
=
val
;
switch
(
val
&
0x
38
)
{
switch
(
val
&
0x
1E
)
{
case
IPTOS_LOWDELAY
:
sk
->
priority
=
SOPRI_INTERACTIVE
;
break
;
case
IPTOS_THROUGHPUT
:
case
IPTOS_MINCOST
:
sk
->
priority
=
SOPRI_BACKGROUND
;
break
;
default:
...
...
@@ -270,7 +271,6 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int opt
* FIXME: Add/Del membership should have a semaphore protecting them from re-entry
*/
struct
ip_mreq
mreq
;
__u32
route_src
;
struct
rtable
*
rt
;
struct
device
*
dev
=
NULL
;
...
...
@@ -295,9 +295,8 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int opt
*/
if
((
rt
=
ip_rt_route
(
mreq
.
imr_multiaddr
.
s_addr
,
0
))
!=
NULL
)
{
dev
=
rt
->
rt_dev
;
route_src
=
rt
->
rt_src
;
atomic_dec
(
&
rt
->
rt_use
);
dev
=
rt
->
u
.
dst
.
dev
;
atomic_dec
(
&
rt
->
u
.
dst
.
use
);
ip_rt_put
(
rt
);
}
}
...
...
@@ -328,7 +327,6 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int opt
{
struct
ip_mreq
mreq
;
struct
rtable
*
rt
;
__u32
route_src
;
struct
device
*
dev
=
NULL
;
/*
...
...
@@ -349,9 +347,8 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int opt
{
if
((
rt
=
ip_rt_route
(
mreq
.
imr_multiaddr
.
s_addr
,
0
))
!=
NULL
)
{
dev
=
rt
->
rt_dev
;
atomic_dec
(
&
rt
->
rt_use
);
route_src
=
rt
->
rt_src
;
dev
=
rt
->
u
.
dst
.
dev
;
atomic_dec
(
&
rt
->
u
.
dst
.
use
);
ip_rt_put
(
rt
);
}
}
...
...
scripts/Menuconfig
View file @
83257356
...
...
@@ -733,7 +733,7 @@ EOM
# Create a menu item to load an alternate configuration file.
#
g_alt_config
()
{
echo
-n
"get_alt_config 'Load
an Alternate Configuration File' "
\
echo
-n
"get_alt_config 'Load an Alternate Configuration File' "
\
>>
MCmenu
}
...
...
@@ -742,6 +742,8 @@ g_alt_config () {
# configuration from it.
#
get_alt_config
()
{
set
-f
## Switch file expansion OFF
while
true
do
ALT_CONFIG
=
"
${
ALT_CONFIG
:-
$DEFAULTS
}
"
...
...
@@ -759,9 +761,9 @@ last retrieved. Leave blank to abort."\
[
"_"
=
"_
$ALT_CONFIG
"
]
&&
break
if
[
-r
"
$ALT_CONFIG
"
]
if
eval
[
-r
"
$ALT_CONFIG
"
]
then
load_config_file
"
$ALT_CONFIG
"
eval
load_config_file
"
$ALT_CONFIG
"
break
else
echo
-ne
"
\0
07"
...
...
@@ -789,6 +791,7 @@ EOM
fi
done
set
+f
## Switch file expansion ON
rm
-f
help.out MCdialog.out
}
...
...
@@ -796,7 +799,7 @@ EOM
# Create a menu item to store an alternate config file.
#
s_alt_config
()
{
echo
-n
"save_alt_config 'S
tore an Alternate Configuration
File' "
\
echo
-n
"save_alt_config 'S
ave Configuration to an Alternate
File' "
\
>>
MCmenu
}
...
...
@@ -805,6 +808,8 @@ s_alt_config () {
# configuration to it.
#
save_alt_config
()
{
set
-f
## Switch file expansion OFF
while
true
do
$DIALOG
--backtitle
"
$backtitle
"
\
...
...
@@ -818,10 +823,10 @@ as an alternate. Leave blank to abort."\
ALT_CONFIG
=
`
cat
MCdialog.out
`
[
"_"
=
"_
$ALT_CONFIG
"
]
&&
break
if
touch
$ALT_CONFIG
2>/dev/null
if
eval
touch
$ALT_CONFIG
2>/dev/null
then
save_configuration
$ALT_CONFIG
eval
save_configuration
$ALT_CONFIG
load_functions
## RELOAD
break
else
...
...
@@ -844,11 +849,12 @@ If you are uncertain what all this means then you should probably
leave this blank.
EOM
$DIALOG
--backtitle
"
$backtitle
"
\
--title
"S
tor
e Alternate Configuration"
\
--title
"S
av
e Alternate Configuration"
\
--textbox
help.out
$ROWS
$COLS
fi
done
set
+f
## Switch file expansion ON
rm
-f
help.out MCdialog.out
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment