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
36800b1c
Commit
36800b1c
authored
Nov 23, 2007
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Import 2.1.123pre2
parent
20fca9a1
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
96 additions
and
77 deletions
+96
-77
Documentation/Configure.help
Documentation/Configure.help
+5
-4
Makefile
Makefile
+1
-1
arch/i386/defconfig
arch/i386/defconfig
+4
-1
drivers/scsi/aic7xxx.c
drivers/scsi/aic7xxx.c
+1
-0
drivers/scsi/ppa.c
drivers/scsi/ppa.c
+2
-0
fs/Config.in
fs/Config.in
+3
-5
fs/bad_inode.c
fs/bad_inode.c
+1
-1
fs/minix/namei.c
fs/minix/namei.c
+1
-1
fs/namei.c
fs/namei.c
+7
-10
include/linux/socket.h
include/linux/socket.h
+1
-0
init/main.c
init/main.c
+43
-50
net/core/iovec.c
net/core/iovec.c
+24
-0
net/netsyms.c
net/netsyms.c
+1
-0
net/sunrpc/xprt.c
net/sunrpc/xprt.c
+2
-4
No files found.
Documentation/Configure.help
View file @
36800b1c
...
...
@@ -2457,8 +2457,9 @@ CONFIG_UNIX
be inserted in and removed from the running kernel whenever you
want). The module will be called unix.o. If you want to compile it
as a module, say M here and read Documentation/modules.txt. If you
try building this as a module and you are running kerneld, be sure
to add '
alias
net
-
pf
-
1
unix
' to your /etc/conf.module file.
try building this as a module and you have said Y to "Kernel module
loader support" above, be sure to add '
alias
net
-
pf
-
1
unix
' to your
/etc/conf.modules file.
If unsure, say Y.
...
...
@@ -7033,8 +7034,8 @@ CONFIG_SERIAL
Documentation/modules.txt. The module will be called serial.o.
[WARNING: Do not compile this driver as a module if you are using
non-standard serial ports, since the configuration information will
be lost
when kerneld automatically unloads the driver. This
limitation may be lifted in the future.]
be lost
if you unload the driver. This limitation may be lifted in
the future.]
BTW1: If you have a mouseman serial mouse which is not recognized by
the X window system, try running gpm first.
...
...
Makefile
View file @
36800b1c
VERSION
=
2
PATCHLEVEL
=
1
SUBLEVEL
=
12
2
SUBLEVEL
=
12
3
ARCH
:=
$(
shell
uname
-m
|
sed
-e
s/i.86/i386/
-e
s/sun4u/sparc64/
-e
s/arm.
*
/arm/
-e
s/sa110/arm/
)
...
...
arch/i386/defconfig
View file @
36800b1c
...
...
@@ -40,6 +40,7 @@ CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
# CONFIG_PARPORT is not set
# CONFIG_APM is not set
#
# Plug and Play support
...
...
@@ -238,7 +239,6 @@ CONFIG_82C710_MOUSE=y
# CONFIG_PC110_PAD is not set
# CONFIG_UMISC is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_APM is not set
# CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set
# CONFIG_VIDEO_DEV is not set
...
...
@@ -277,6 +277,9 @@ CONFIG_LOCKD=y
# CONFIG_ROMFS_FS is not set
CONFIG_AUTOFS_FS=y
# CONFIG_UFS_FS is not set
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_SMD_DISKLABEL is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
CONFIG_DEVPTS_FS=y
# CONFIG_MAC_PARTITION is not set
# CONFIG_NLS is not set
...
...
drivers/scsi/aic7xxx.c
View file @
36800b1c
...
...
@@ -6791,6 +6791,7 @@ aic7xxx_alloc(Scsi_Host_Template *sht, struct aic7xxx_host *temp)
p
->
type
=
temp
->
type
;
p
->
unpause
=
temp
->
unpause
;
p
->
pause
=
temp
->
pause
;
p
->
pdev
=
temp
->
pdev
;
p
->
pci_bus
=
temp
->
pci_bus
;
p
->
pci_device_fn
=
temp
->
pci_device_fn
;
p
->
bios_address
=
temp
->
bios_address
;
...
...
drivers/scsi/ppa.c
View file @
36800b1c
...
...
@@ -1027,6 +1027,7 @@ static int ppa_engine(ppa_struct * tmp, Scsi_Cmnd * cmd)
retv
--
;
if
(
retv
)
{
if
((
jiffies
-
tmp
->
jstart
)
>
(
1
*
HZ
))
{
printk
(
"ppa: Parallel port cable is unplugged!!
\n
"
);
ppa_fail
(
host_no
,
DID_BUS_BUSY
);
...
...
@@ -1035,6 +1036,7 @@ static int ppa_engine(ppa_struct * tmp, Scsi_Cmnd * cmd)
ppa_disconnect
(
host_no
);
return
1
;
/* Try again in a jiffy */
}
}
cmd
->
SCp
.
phase
++
;
}
...
...
fs/Config.in
View file @
36800b1c
...
...
@@ -67,11 +67,9 @@ if [ "$CONFIG_AFFS_FS" != "n" ]; then
define_bool CONFIG_AMIGA_PARTITION y
fi
tristate 'UFS filesystem support' CONFIG_UFS_FS
if [ "$CONFIG_UFS_FS" != "n" ]; then
bool 'BSD disklabel (FreeBSD partition tables) support' CONFIG_BSD_DISKLABEL
bool 'SMD disklabel (Sun partition tables) support' CONFIG_SMD_DISKLABEL
bool 'Solaris (x86) partition table support' CONFIG_SOLARIS_X86_PARTITION
fi
bool 'BSD disklabel (BSD partition tables) support' CONFIG_BSD_DISKLABEL
bool 'SMD disklabel (Sun partition tables) support' CONFIG_SMD_DISKLABEL
bool 'Solaris (x86) partition table support' CONFIG_SOLARIS_X86_PARTITION
if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
tristate '/dev/pts filesystem for Unix98 PTYs' CONFIG_DEVPTS_FS
fi
...
...
fs/bad_inode.c
View file @
36800b1c
...
...
@@ -15,7 +15,7 @@
* so that a bad root inode can at least be unmounted. To do this
* we must dput() the base and return the dentry with a dget().
*/
static
struct
dentry
*
bad_follow_link
(
struct
dentry
*
dent
,
struct
dentry
*
base
)
static
struct
dentry
*
bad_follow_link
(
struct
dentry
*
dent
,
struct
dentry
*
base
,
unsigned
int
follow
)
{
dput
(
base
);
return
dget
(
dent
);
...
...
fs/minix/namei.c
View file @
36800b1c
...
...
@@ -88,7 +88,7 @@ static int minix_hash(struct dentry *dentry, struct qstr *qstr)
{
unsigned
long
hash
;
int
i
;
const
char
*
name
;
const
unsigned
char
*
name
;
i
=
dentry
->
d_inode
->
i_sb
->
u
.
minix_sb
.
s_namelen
;
if
(
i
>=
qstr
->
len
)
...
...
fs/namei.c
View file @
36800b1c
...
...
@@ -361,10 +361,6 @@ struct dentry * lookup_dentry(const char * name, struct dentry * base, unsigned
unsigned
int
follow
;
unsigned
int
c
;
dentry
=
ERR_PTR
(
-
ENOENT
);
if
(
!
inode
)
break
;
err
=
permission
(
inode
,
MAY_EXEC
);
dentry
=
ERR_PTR
(
err
);
if
(
err
)
...
...
@@ -429,16 +425,17 @@ struct dentry * lookup_dentry(const char * name, struct dentry * base, unsigned
if
(
IS_ERR
(
base
))
goto
return_base
;
dentry
=
ERR_PTR
(
-
ENO
TDIR
);
dentry
=
ERR_PTR
(
-
ENO
ENT
);
inode
=
base
->
d_inode
;
if
(
follow
&
FOLLOW_DIRECTORY
)
{
if
(
!
inode
||
!
inode
->
i_op
||
!
inode
->
i_op
->
lookup
)
if
(
!
inode
)
break
;
dentry
=
ERR_PTR
(
-
ENOTDIR
);
if
(
!
inode
->
i_op
||
!
inode
->
i_op
->
lookup
)
break
;
if
(
follow
&
FOLLOW_CONTINUE
)
continue
;
}
if
(
follow
&
FOLLOW_CONTINUE
)
continue
;
return_base:
return
base
;
}
...
...
include/linux/socket.h
View file @
36800b1c
...
...
@@ -262,6 +262,7 @@ extern int csum_partial_copy_fromiovecend(unsigned char *kdata,
extern
int
verify_iovec
(
struct
msghdr
*
m
,
struct
iovec
*
iov
,
char
*
address
,
int
mode
);
extern
int
memcpy_toiovec
(
struct
iovec
*
v
,
unsigned
char
*
kdata
,
int
len
);
extern
void
memcpy_tokerneliovec
(
struct
iovec
*
iov
,
unsigned
char
*
kdata
,
int
len
);
extern
int
move_addr_to_user
(
void
*
kaddr
,
int
klen
,
void
*
uaddr
,
int
*
ulen
);
extern
int
move_addr_to_kernel
(
void
*
uaddr
,
int
ulen
,
void
*
kaddr
);
extern
int
put_cmsg
(
struct
msghdr
*
,
int
level
,
int
type
,
int
len
,
void
*
data
);
...
...
init/main.c
View file @
36800b1c
...
...
@@ -32,6 +32,7 @@
#include <linux/major.h>
#include <linux/blk.h>
#include <linux/init.h>
#include <linux/smp_lock.h>
#include <asm/system.h>
#include <asm/io.h>
...
...
@@ -1115,15 +1116,47 @@ asmlinkage void __init start_kernel(void)
check_bugs
();
printk
(
"POSIX conformance testing by UNIFIX
\n
"
);
/*
* We count on the initial thread going ok
* Like idlers init is an unlocked kernel thread, which will
* make syscalls (and thus be locked).
*/
smp_init
();
kernel_thread
(
init
,
NULL
,
CLONE_FS
|
CLONE_FILES
|
CLONE_SIGHAND
);
cpu_idle
(
NULL
);
}
/*
* Ok, the machine is now initialized. None of the devices
* have been touched yet, but the CPU subsystem is up and
* running, and memory management works.
*
* Now we can finally start doing some real work..
*/
#ifdef CONFIG_BLK_DEV_INITRD
static
int
do_linuxrc
(
void
*
shell
)
{
static
char
*
argv
[]
=
{
"linuxrc"
,
NULL
,
};
close
(
0
);
close
(
1
);
close
(
2
);
setsid
();
(
void
)
open
(
"/dev/console"
,
O_RDWR
,
0
);
(
void
)
dup
(
0
);
(
void
)
dup
(
0
);
return
execve
(
shell
,
argv
,
envp_init
);
}
static
void
__init
no_initrd
(
char
*
s
,
int
*
ints
)
{
mount_initrd
=
0
;
}
#endif
/*
* Ok, the machine is now initialized. None of the devices
* have been touched yet, but the CPU subsystem is up and
* running, and memory and process management works.
*
* Now we can finally start doing some real work..
*/
static
void
__init
do_basic_setup
(
void
)
{
#ifdef CONFIG_BLK_DEV_INITRD
int
real_root_mountflags
;
#endif
#if defined(CONFIG_MTRR)
/* Do this after SMP initialization */
/*
...
...
@@ -1161,49 +1194,6 @@ asmlinkage void __init start_kernel(void)
ecard_init
();
#endif
/*
* We count on the initial thread going ok
* Like idlers init is an unlocked kernel thread, which will
* make syscalls (and thus be locked).
*/
kernel_thread
(
init
,
NULL
,
CLONE_FS
|
CLONE_FILES
|
CLONE_SIGHAND
);
/*
* task[0] is meant to be used as an "idle" task: it may not sleep, but
* it might do some general things like count free pages or it could be
* used to implement a reasonable LRU algorithm for the paging routines:
* anything that can be useful, but shouldn't take time from the real
* processes.
*
* Right now task[0] just does an infinite idle loop.
*/
cpu_idle
(
NULL
);
}
#ifdef CONFIG_BLK_DEV_INITRD
static
int
do_linuxrc
(
void
*
shell
)
{
static
char
*
argv
[]
=
{
"linuxrc"
,
NULL
,
};
close
(
0
);
close
(
1
);
close
(
2
);
setsid
();
(
void
)
open
(
"/dev/console"
,
O_RDWR
,
0
);
(
void
)
dup
(
0
);
(
void
)
dup
(
0
);
return
execve
(
shell
,
argv
,
envp_init
);
}
static
void
__init
no_initrd
(
char
*
s
,
int
*
ints
)
{
mount_initrd
=
0
;
}
#endif
static
void
__init
do_basic_setup
(
void
)
{
#ifdef CONFIG_BLK_DEV_INITRD
int
real_root_mountflags
;
#endif
/* Networking initialization needs a process context */
sock_init
();
...
...
@@ -1222,6 +1212,7 @@ static void __init do_basic_setup(void)
#endif
#ifdef CONFIG_BLK_DEV_INITRD
real_root_dev
=
ROOT_DEV
;
real_root_mountflags
=
root_mountflags
;
if
(
initrd_start
&&
mount_initrd
)
root_mountflags
&=
~
MS_RDONLY
;
...
...
@@ -1278,6 +1269,7 @@ static void __init do_basic_setup(void)
static
int
init
(
void
*
unused
)
{
lock_kernel
();
do_basic_setup
();
/*
...
...
@@ -1286,6 +1278,7 @@ static int init(void * unused)
* initmem segments and start the user-mode stuff..
*/
free_initmem
();
unlock_kernel
();
if
(
open
(
"/dev/console"
,
O_RDWR
,
0
)
<
0
)
printk
(
"Warning: unable to open an initial console.
\n
"
);
...
...
net/core/iovec.c
View file @
36800b1c
...
...
@@ -94,6 +94,30 @@ int memcpy_toiovec(struct iovec *iov, unsigned char *kdata, int len)
return
err
;
}
/*
* In kernel copy to iovec. Returns -EFAULT on error.
*
* Note: this modifies the original iovec.
*/
void
memcpy_tokerneliovec
(
struct
iovec
*
iov
,
unsigned
char
*
kdata
,
int
len
)
{
while
(
len
>
0
)
{
if
(
iov
->
iov_len
)
{
int
copy
=
min
(
iov
->
iov_len
,
len
);
memcpy
(
iov
->
iov_base
,
kdata
,
copy
);
kdata
+=
copy
;
len
-=
copy
;
iov
->
iov_len
-=
copy
;
iov
->
iov_base
+=
copy
;
}
iov
++
;
}
}
/*
* Copy iovec to kernel. Returns -EFAULT on error.
*
...
...
net/netsyms.c
View file @
36800b1c
...
...
@@ -93,6 +93,7 @@ EXPORT_SYMBOL(sock_unregister);
/* Socket layer support routines */
EXPORT_SYMBOL
(
memcpy_fromiovec
);
EXPORT_SYMBOL
(
memcpy_tokerneliovec
);
EXPORT_SYMBOL
(
sock_create
);
EXPORT_SYMBOL
(
sock_alloc
);
EXPORT_SYMBOL
(
sock_release
);
...
...
net/sunrpc/xprt.c
View file @
36800b1c
...
...
@@ -573,7 +573,6 @@ udp_data_ready(struct sock *sk, int len)
struct
rpc_rqst
*
rovr
;
struct
sk_buff
*
skb
;
struct
iovec
iov
[
MAX_IOVEC
];
mm_segment_t
oldfs
;
int
err
,
repsize
,
copied
;
dprintk
(
"RPC: udp_data_ready...
\n
"
);
...
...
@@ -603,9 +602,8 @@ udp_data_ready(struct sock *sk, int len)
/* Okay, we have it. Copy datagram... */
memcpy
(
iov
,
rovr
->
rq_rvec
,
rovr
->
rq_rnr
*
sizeof
(
iov
[
0
]));
oldfs
=
get_fs
();
set_fs
(
get_ds
());
skb_copy_datagram_iovec
(
skb
,
8
,
iov
,
copied
);
set_fs
(
oldfs
);
/* This needs to stay tied with the usermode skb_copy_dagram... */
memcpy_tokerneliovec
(
iov
,
skb
->
data
+
8
,
copied
);
xprt_complete_rqst
(
xprt
,
rovr
,
copied
);
...
...
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