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
d66f7b39
Commit
d66f7b39
authored
Oct 15, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/davem/sparc-2.5
into home.osdl.org:/home/torvalds/v2.5/linux
parents
f50386f9
67a05ecd
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
314 additions
and
281 deletions
+314
-281
arch/i386/kernel/mpparse.c
arch/i386/kernel/mpparse.c
+10
-0
drivers/block/Makefile
drivers/block/Makefile
+0
-1
drivers/block/initrd.c
drivers/block/initrd.c
+0
-100
drivers/cdrom/sjcd.c
drivers/cdrom/sjcd.c
+13
-9
drivers/char/applicom.c
drivers/char/applicom.c
+5
-7
drivers/ide/ide-floppy.c
drivers/ide/ide-floppy.c
+1
-1
drivers/isdn/hardware/eicon/divasmain.c
drivers/isdn/hardware/eicon/divasmain.c
+8
-17
drivers/media/video/saa7134/saa7134-core.c
drivers/media/video/saa7134/saa7134-core.c
+1
-1
drivers/net/net_init.c
drivers/net/net_init.c
+3
-0
drivers/net/sunhme.c
drivers/net/sunhme.c
+1
-1
fs/Kconfig
fs/Kconfig
+2
-2
fs/ext2/acl.c
fs/ext2/acl.c
+1
-1
fs/ext3/acl.c
fs/ext3/acl.c
+1
-1
fs/ext3/inode.c
fs/ext3/inode.c
+5
-12
fs/inode.c
fs/inode.c
+1
-1
fs/reiserfs/procfs.c
fs/reiserfs/procfs.c
+4
-3
include/asm-i386/mach-numaq/mach_mpparse.h
include/asm-i386/mach-numaq/mach_mpparse.h
+0
-13
include/linux/netdevice.h
include/linux/netdevice.h
+5
-1
init/do_mounts_initrd.c
init/do_mounts_initrd.c
+16
-12
init/initramfs.c
init/initramfs.c
+74
-29
kernel/sched.c
kernel/sched.c
+1
-1
mm/swapfile.c
mm/swapfile.c
+4
-0
net/bridge/netfilter/ebt_among.c
net/bridge/netfilter/ebt_among.c
+1
-1
net/core/dev.c
net/core/dev.c
+4
-3
net/ipv4/ip_gre.c
net/ipv4/ip_gre.c
+4
-0
net/ipv4/ip_output.c
net/ipv4/ip_output.c
+1
-1
net/ipv4/ipip.c
net/ipv4/ipip.c
+3
-0
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_ipv4.c
+27
-19
net/ipv6/ip6_tunnel.c
net/ipv6/ip6_tunnel.c
+3
-0
net/ipv6/sit.c
net/ipv6/sit.c
+3
-0
scripts/makeman
scripts/makeman
+67
-41
scripts/split-man
scripts/split-man
+1
-1
security/selinux/include/security.h
security/selinux/include/security.h
+1
-0
security/selinux/selinuxfs.c
security/selinux/selinuxfs.c
+43
-1
security/selinux/ss/policydb.h
security/selinux/ss/policydb.h
+0
-1
No files found.
arch/i386/kernel/mpparse.c
View file @
d66f7b39
...
@@ -337,6 +337,16 @@ static void __init smp_read_mpc_oem(struct mp_config_oemtable *oemtable, \
...
@@ -337,6 +337,16 @@ static void __init smp_read_mpc_oem(struct mp_config_oemtable *oemtable, \
}
}
}
}
}
}
static
inline
void
mps_oem_check
(
struct
mp_config_table
*
mpc
,
char
*
oem
,
char
*
productid
)
{
if
(
strncmp
(
oem
,
"IBM NUMA"
,
8
))
printk
(
"Warning! May not be a NUMA-Q system!
\n
"
);
if
(
mpc
->
mpc_oemptr
)
smp_read_mpc_oem
((
struct
mp_config_oemtable
*
)
mpc
->
mpc_oemptr
,
mpc
->
mpc_oemsize
);
}
#endif
/* CONFIG_X86_NUMAQ */
#endif
/* CONFIG_X86_NUMAQ */
/*
/*
...
...
drivers/block/Makefile
View file @
d66f7b39
...
@@ -28,7 +28,6 @@ obj-$(CONFIG_ATARI_ACSI) += acsi.o
...
@@ -28,7 +28,6 @@ obj-$(CONFIG_ATARI_ACSI) += acsi.o
obj-$(CONFIG_ATARI_SLM)
+=
acsi_slm.o
obj-$(CONFIG_ATARI_SLM)
+=
acsi_slm.o
obj-$(CONFIG_AMIGA_Z2RAM)
+=
z2ram.o
obj-$(CONFIG_AMIGA_Z2RAM)
+=
z2ram.o
obj-$(CONFIG_BLK_DEV_RAM)
+=
rd.o
obj-$(CONFIG_BLK_DEV_RAM)
+=
rd.o
obj-$(CONFIG_BLK_DEV_INITRD)
+=
initrd.o
obj-$(CONFIG_BLK_DEV_LOOP)
+=
loop.o
obj-$(CONFIG_BLK_DEV_LOOP)
+=
loop.o
obj-$(CONFIG_BLK_DEV_PS2)
+=
ps2esdi.o
obj-$(CONFIG_BLK_DEV_PS2)
+=
ps2esdi.o
obj-$(CONFIG_BLK_DEV_XD)
+=
xd.o
obj-$(CONFIG_BLK_DEV_XD)
+=
xd.o
...
...
drivers/block/initrd.c
deleted
100644 → 0
View file @
f50386f9
#include <linux/blkdev.h>
#include <linux/genhd.h>
#include <linux/initrd.h>
#include <linux/init.h>
#include <linux/major.h>
#include <linux/module.h>
#include <linux/spinlock.h>
#include <asm/uaccess.h>
unsigned
long
initrd_start
,
initrd_end
;
int
initrd_below_start_ok
;
static
int
initrd_users
;
static
spinlock_t
initrd_users_lock
=
SPIN_LOCK_UNLOCKED
;
static
struct
gendisk
*
initrd_disk
;
static
ssize_t
initrd_read
(
struct
file
*
file
,
char
*
buf
,
size_t
count
,
loff_t
*
ppos
)
{
int
left
=
initrd_end
-
initrd_start
-
*
ppos
;
if
(
count
>
left
)
count
=
left
;
if
(
count
==
0
)
return
0
;
if
(
copy_to_user
(
buf
,
(
char
*
)
initrd_start
+
*
ppos
,
count
))
return
-
EFAULT
;
*
ppos
+=
count
;
return
count
;
}
static
int
initrd_release
(
struct
inode
*
inode
,
struct
file
*
file
)
{
blkdev_put
(
inode
->
i_bdev
,
BDEV_FILE
);
spin_lock
(
&
initrd_users_lock
);
if
(
!--
initrd_users
)
{
spin_unlock
(
&
initrd_users_lock
);
del_gendisk
(
initrd_disk
);
free_initrd_mem
(
initrd_start
,
initrd_end
);
initrd_start
=
0
;
}
else
spin_unlock
(
&
initrd_users_lock
);
return
0
;
}
static
struct
file_operations
initrd_fops
=
{
.
read
=
initrd_read
,
.
release
=
initrd_release
,
};
static
int
initrd_open
(
struct
inode
*
inode
,
struct
file
*
filp
)
{
if
(
!
initrd_start
)
return
-
ENODEV
;
spin_lock
(
&
initrd_users_lock
);
initrd_users
++
;
spin_unlock
(
&
initrd_users_lock
);
filp
->
f_op
=
&
initrd_fops
;
return
0
;
}
static
struct
block_device_operations
initrd_bdops
=
{
.
owner
=
THIS_MODULE
,
.
open
=
initrd_open
,
};
static
int
__init
initrd_init
(
void
)
{
initrd_disk
=
alloc_disk
(
1
);
if
(
!
initrd_disk
)
return
-
ENOMEM
;
initrd_disk
->
major
=
RAMDISK_MAJOR
;
initrd_disk
->
first_minor
=
INITRD_MINOR
;
initrd_disk
->
fops
=
&
initrd_bdops
;
sprintf
(
initrd_disk
->
disk_name
,
"initrd"
);
sprintf
(
initrd_disk
->
devfs_name
,
"rd/initrd"
);
set_capacity
(
initrd_disk
,
(
initrd_end
-
initrd_start
+
511
)
>>
9
);
add_disk
(
initrd_disk
);
return
0
;
}
static
void
__exit
initrd_exit
(
void
)
{
put_disk
(
initrd_disk
);
}
module_init
(
initrd_init
);
module_exit
(
initrd_exit
);
drivers/cdrom/sjcd.c
View file @
d66f7b39
...
@@ -842,8 +842,9 @@ static int sjcd_ioctl(struct inode *ip, struct file *fp,
...
@@ -842,8 +842,9 @@ static int sjcd_ioctl(struct inode *ip, struct file *fp,
CDROM_AUDIO_NO_STATUS
;
CDROM_AUDIO_NO_STATUS
;
}
}
copy_from_user
(
&
sjcd_msf
,
(
void
*
)
arg
,
if
(
copy_from_user
(
&
sjcd_msf
,
(
void
*
)
arg
,
sizeof
(
sjcd_msf
));
sizeof
(
sjcd_msf
)))
return
(
-
EFAULT
);
sjcd_playing
.
start
.
min
=
sjcd_playing
.
start
.
min
=
bin2bcd
(
sjcd_msf
.
cdmsf_min0
);
bin2bcd
(
sjcd_msf
.
cdmsf_min0
);
...
@@ -893,9 +894,9 @@ static int sjcd_ioctl(struct inode *ip, struct file *fp,
...
@@ -893,9 +894,9 @@ static int sjcd_ioctl(struct inode *ip, struct file *fp,
sizeof
(
toc_entry
)))
==
0
)
{
sizeof
(
toc_entry
)))
==
0
)
{
struct
sjcd_hw_disk_info
*
tp
;
struct
sjcd_hw_disk_info
*
tp
;
copy_from_user
(
&
toc_entry
,
(
void
*
)
arg
,
if
(
copy_from_user
(
&
toc_entry
,
(
void
*
)
arg
,
sizeof
(
toc_entry
))
;
sizeof
(
toc_entry
))
)
return
(
-
EFAULT
);
if
(
toc_entry
.
cdte_track
==
CDROM_LEADOUT
)
if
(
toc_entry
.
cdte_track
==
CDROM_LEADOUT
)
tp
=
&
sjcd_table_of_contents
[
0
];
tp
=
&
sjcd_table_of_contents
[
0
];
else
if
(
toc_entry
.
cdte_track
<
else
if
(
toc_entry
.
cdte_track
<
...
@@ -948,8 +949,10 @@ static int sjcd_ioctl(struct inode *ip, struct file *fp,
...
@@ -948,8 +949,10 @@ static int sjcd_ioctl(struct inode *ip, struct file *fp,
sizeof
(
subchnl
)))
==
0
)
{
sizeof
(
subchnl
)))
==
0
)
{
struct
sjcd_hw_qinfo
q_info
;
struct
sjcd_hw_qinfo
q_info
;
copy_from_user
(
&
subchnl
,
(
void
*
)
arg
,
if
(
copy_from_user
(
&
subchnl
,
(
void
*
)
arg
,
sizeof
(
subchnl
));
sizeof
(
subchnl
)))
return
(
-
EFAULT
);
if
(
sjcd_get_q_info
(
&
q_info
)
<
0
)
if
(
sjcd_get_q_info
(
&
q_info
)
<
0
)
return
(
-
EIO
);
return
(
-
EIO
);
...
@@ -1005,8 +1008,9 @@ static int sjcd_ioctl(struct inode *ip, struct file *fp,
...
@@ -1005,8 +1008,9 @@ static int sjcd_ioctl(struct inode *ip, struct file *fp,
sizeof
(
vol_ctrl
)))
==
0
)
{
sizeof
(
vol_ctrl
)))
==
0
)
{
unsigned
char
dummy
[
4
];
unsigned
char
dummy
[
4
];
copy_from_user
(
&
vol_ctrl
,
(
void
*
)
arg
,
if
(
copy_from_user
(
&
vol_ctrl
,
(
void
*
)
arg
,
sizeof
(
vol_ctrl
));
sizeof
(
vol_ctrl
)))
return
(
-
EFAULT
);
sjcd_send_4_cmd
(
SCMD_SET_VOLUME
,
sjcd_send_4_cmd
(
SCMD_SET_VOLUME
,
vol_ctrl
.
channel0
,
0xFF
,
vol_ctrl
.
channel0
,
0xFF
,
vol_ctrl
.
channel1
,
0xFF
);
vol_ctrl
.
channel1
,
0xFF
);
...
...
drivers/char/applicom.c
View file @
d66f7b39
...
@@ -214,6 +214,7 @@ int __init applicom_init(void)
...
@@ -214,6 +214,7 @@ int __init applicom_init(void)
if
(
!
RamIO
)
{
if
(
!
RamIO
)
{
printk
(
KERN_INFO
"ac.o: Failed to ioremap PCI memory space at 0x%lx
\n
"
,
dev
->
resource
[
0
].
start
);
printk
(
KERN_INFO
"ac.o: Failed to ioremap PCI memory space at 0x%lx
\n
"
,
dev
->
resource
[
0
].
start
);
pci_disable_device
(
dev
);
return
-
EIO
;
return
-
EIO
;
}
}
...
@@ -225,12 +226,14 @@ int __init applicom_init(void)
...
@@ -225,12 +226,14 @@ int __init applicom_init(void)
(
unsigned
long
)
RamIO
,
0
)))
{
(
unsigned
long
)
RamIO
,
0
)))
{
printk
(
KERN_INFO
"ac.o: PCI Applicom device doesn't have correct signature.
\n
"
);
printk
(
KERN_INFO
"ac.o: PCI Applicom device doesn't have correct signature.
\n
"
);
iounmap
(
RamIO
);
iounmap
(
RamIO
);
pci_disable_device
(
dev
);
continue
;
continue
;
}
}
if
(
request_irq
(
dev
->
irq
,
&
ac_interrupt
,
SA_SHIRQ
,
"Applicom PCI"
,
&
dummy
))
{
if
(
request_irq
(
dev
->
irq
,
&
ac_interrupt
,
SA_SHIRQ
,
"Applicom PCI"
,
&
dummy
))
{
printk
(
KERN_INFO
"Could not allocate IRQ %d for PCI Applicom device.
\n
"
,
dev
->
irq
);
printk
(
KERN_INFO
"Could not allocate IRQ %d for PCI Applicom device.
\n
"
,
dev
->
irq
);
iounmap
(
RamIO
);
iounmap
(
RamIO
);
pci_disable_device
(
dev
);
apbs
[
boardno
-
1
].
RamIO
=
0
;
apbs
[
boardno
-
1
].
RamIO
=
0
;
continue
;
continue
;
}
}
...
@@ -257,12 +260,6 @@ int __init applicom_init(void)
...
@@ -257,12 +260,6 @@ int __init applicom_init(void)
/* Now try the specified ISA cards */
/* Now try the specified ISA cards */
#warning "LEAK"
RamIO
=
ioremap
(
mem
,
LEN_RAM_IO
*
MAX_ISA_BOARD
);
if
(
!
RamIO
)
printk
(
KERN_INFO
"ac.o: Failed to ioremap ISA memory space at 0x%lx
\n
"
,
mem
);
for
(
i
=
0
;
i
<
MAX_ISA_BOARD
;
i
++
)
{
for
(
i
=
0
;
i
<
MAX_ISA_BOARD
;
i
++
)
{
RamIO
=
ioremap
(
mem
+
(
LEN_RAM_IO
*
i
),
LEN_RAM_IO
);
RamIO
=
ioremap
(
mem
+
(
LEN_RAM_IO
*
i
),
LEN_RAM_IO
);
...
@@ -285,7 +282,8 @@ int __init applicom_init(void)
...
@@ -285,7 +282,8 @@ int __init applicom_init(void)
iounmap
((
void
*
)
RamIO
);
iounmap
((
void
*
)
RamIO
);
apbs
[
boardno
-
1
].
RamIO
=
0
;
apbs
[
boardno
-
1
].
RamIO
=
0
;
}
}
apbs
[
boardno
-
1
].
irq
=
irq
;
else
apbs
[
boardno
-
1
].
irq
=
irq
;
}
}
else
else
apbs
[
boardno
-
1
].
irq
=
0
;
apbs
[
boardno
-
1
].
irq
=
0
;
...
...
drivers/ide/ide-floppy.c
View file @
d66f7b39
...
@@ -1796,7 +1796,7 @@ static void idefloppy_setup (ide_drive_t *drive, idefloppy_floppy_t *floppy)
...
@@ -1796,7 +1796,7 @@ static void idefloppy_setup (ide_drive_t *drive, idefloppy_floppy_t *floppy)
* we'll leave the limitation below for the 2.2.x tree.
* we'll leave the limitation below for the 2.2.x tree.
*/
*/
if
(
str
cmp
(
drive
->
id
->
model
,
"IOMEGA ZIP 100 ATAPI"
)
==
0
)
{
if
(
str
str
(
drive
->
id
->
model
,
"IOMEGA ZIP"
)
!=
NULL
)
{
set_bit
(
IDEFLOPPY_ZIP_DRIVE
,
&
floppy
->
flags
);
set_bit
(
IDEFLOPPY_ZIP_DRIVE
,
&
floppy
->
flags
);
/* This value will be visible in the /proc/ide/hdx/settings */
/* This value will be visible in the /proc/ide/hdx/settings */
floppy
->
ticks
=
IDEFLOPPY_TICKS_DELAY
;
floppy
->
ticks
=
IDEFLOPPY_TICKS_DELAY
;
...
...
drivers/isdn/hardware/eicon/divasmain.c
View file @
d66f7b39
/* $Id: divasmain.c,v 1.4
3 2003/09/22 08:57:31 schindler
Exp $
/* $Id: divasmain.c,v 1.4
6 2003/10/10 12:28:14 armin
Exp $
*
*
* Low level driver for Eicon DIVA Server ISDN cards.
* Low level driver for Eicon DIVA Server ISDN cards.
*
*
...
@@ -41,7 +41,7 @@
...
@@ -41,7 +41,7 @@
#include "diva_dma.h"
#include "diva_dma.h"
#include "diva_pci.h"
#include "diva_pci.h"
static
char
*
main_revision
=
"$Revision: 1.4
3
$"
;
static
char
*
main_revision
=
"$Revision: 1.4
6
$"
;
static
int
major
;
static
int
major
;
...
@@ -69,7 +69,7 @@ extern int divasfunc_init(int dbgmask);
...
@@ -69,7 +69,7 @@ extern int divasfunc_init(int dbgmask);
extern
void
divasfunc_exit
(
void
);
extern
void
divasfunc_exit
(
void
);
typedef
struct
_diva_os_thread_dpc
{
typedef
struct
_diva_os_thread_dpc
{
struct
tasklet
_struct
divas_task
;
struct
work
_struct
divas_task
;
struct
work_struct
trap_script_task
;
struct
work_struct
trap_script_task
;
diva_os_soft_isr_t
*
psoft_isr
;
diva_os_soft_isr_t
*
psoft_isr
;
int
card_failed
;
int
card_failed
;
...
@@ -552,7 +552,7 @@ void diva_os_remove_irq(void *context, byte irq)
...
@@ -552,7 +552,7 @@ void diva_os_remove_irq(void *context, byte irq)
/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
DPC framework implementation
DPC framework implementation
-------------------------------------------------------------------------- */
-------------------------------------------------------------------------- */
static
void
diva_os_dpc_proc
(
unsigned
long
context
)
static
void
diva_os_dpc_proc
(
void
*
context
)
{
{
diva_os_thread_dpc_t
*
psoft_isr
=
(
diva_os_thread_dpc_t
*
)
context
;
diva_os_thread_dpc_t
*
psoft_isr
=
(
diva_os_thread_dpc_t
*
)
context
;
diva_os_soft_isr_t
*
pisr
=
psoft_isr
->
psoft_isr
;
diva_os_soft_isr_t
*
pisr
=
psoft_isr
->
psoft_isr
;
...
@@ -575,8 +575,7 @@ int diva_os_initialize_soft_isr(diva_os_soft_isr_t * psoft_isr,
...
@@ -575,8 +575,7 @@ int diva_os_initialize_soft_isr(diva_os_soft_isr_t * psoft_isr,
psoft_isr
->
callback_context
=
callback_context
;
psoft_isr
->
callback_context
=
callback_context
;
pdpc
->
psoft_isr
=
psoft_isr
;
pdpc
->
psoft_isr
=
psoft_isr
;
INIT_WORK
(
&
pdpc
->
trap_script_task
,
diva_adapter_trapped
,
pdpc
);
INIT_WORK
(
&
pdpc
->
trap_script_task
,
diva_adapter_trapped
,
pdpc
);
tasklet_init
(
&
pdpc
->
divas_task
,
diva_os_dpc_proc
,
INIT_WORK
(
&
pdpc
->
divas_task
,
diva_os_dpc_proc
,
pdpc
);
(
unsigned
long
)
pdpc
);
return
(
0
);
return
(
0
);
}
}
...
@@ -587,7 +586,7 @@ int diva_os_schedule_soft_isr(diva_os_soft_isr_t * psoft_isr)
...
@@ -587,7 +586,7 @@ int diva_os_schedule_soft_isr(diva_os_soft_isr_t * psoft_isr)
diva_os_thread_dpc_t
*
pdpc
=
diva_os_thread_dpc_t
*
pdpc
=
(
diva_os_thread_dpc_t
*
)
psoft_isr
->
object
;
(
diva_os_thread_dpc_t
*
)
psoft_isr
->
object
;
tasklet_schedule
(
&
pdpc
->
divas_task
);
schedule_work
(
&
pdpc
->
divas_task
);
}
}
return
(
1
);
return
(
1
);
...
@@ -595,26 +594,18 @@ int diva_os_schedule_soft_isr(diva_os_soft_isr_t * psoft_isr)
...
@@ -595,26 +594,18 @@ int diva_os_schedule_soft_isr(diva_os_soft_isr_t * psoft_isr)
int
diva_os_cancel_soft_isr
(
diva_os_soft_isr_t
*
psoft_isr
)
int
diva_os_cancel_soft_isr
(
diva_os_soft_isr_t
*
psoft_isr
)
{
{
if
(
psoft_isr
&&
psoft_isr
->
object
)
{
flush_scheduled_work
();
diva_os_thread_dpc_t
*
pdpc
=
(
diva_os_thread_dpc_t
*
)
psoft_isr
->
object
;
tasklet_kill
(
&
pdpc
->
divas_task
);
}
return
(
0
);
return
(
0
);
}
}
void
diva_os_remove_soft_isr
(
diva_os_soft_isr_t
*
psoft_isr
)
void
diva_os_remove_soft_isr
(
diva_os_soft_isr_t
*
psoft_isr
)
{
{
if
(
psoft_isr
&&
psoft_isr
->
object
)
{
if
(
psoft_isr
&&
psoft_isr
->
object
)
{
diva_os_thread_dpc_t
*
pdpc
=
(
diva_os_thread_dpc_t
*
)
psoft_isr
->
object
;
void
*
mem
;
void
*
mem
;
tasklet_kill
(
&
pdpc
->
divas_task
);
flush_scheduled_work
();
mem
=
psoft_isr
->
object
;
mem
=
psoft_isr
->
object
;
psoft_isr
->
object
=
0
;
psoft_isr
->
object
=
0
;
flush_scheduled_work
();
diva_os_free
(
0
,
mem
);
diva_os_free
(
0
,
mem
);
}
}
}
}
...
...
drivers/media/video/saa7134/saa7134-core.c
View file @
d66f7b39
...
@@ -95,7 +95,7 @@ struct list_head saa7134_devlist;
...
@@ -95,7 +95,7 @@ struct list_head saa7134_devlist;
unsigned
int
saa7134_devcount
;
unsigned
int
saa7134_devcount
;
#define dprintk(fmt, arg...) if (core_debug) \
#define dprintk(fmt, arg...) if (core_debug) \
printk(KERN_DEBUG "%s/core: " fmt, dev->name, ## arg)
printk(KERN_DEBUG "%s/core: " fmt, dev->name
, ## arg)
/* ------------------------------------------------------------------ */
/* ------------------------------------------------------------------ */
/* debug help functions */
/* debug help functions */
...
...
drivers/net/net_init.c
View file @
d66f7b39
...
@@ -148,11 +148,14 @@ static struct net_device *init_netdev(struct net_device *dev, int sizeof_priv,
...
@@ -148,11 +148,14 @@ static struct net_device *init_netdev(struct net_device *dev, int sizeof_priv,
if
(
dev
->
name
[
0
]
==
'\0'
||
dev
->
name
[
0
]
==
' '
)
{
if
(
dev
->
name
[
0
]
==
'\0'
||
dev
->
name
[
0
]
==
' '
)
{
strcpy
(
dev
->
name
,
mask
);
strcpy
(
dev
->
name
,
mask
);
rtnl_lock
();
if
(
dev_alloc_name
(
dev
,
mask
)
<
0
)
{
if
(
dev_alloc_name
(
dev
,
mask
)
<
0
)
{
rtnl_unlock
();
if
(
new_device
)
if
(
new_device
)
kfree
(
dev
);
kfree
(
dev
);
return
NULL
;
return
NULL
;
}
}
rtnl_unlock
();
}
}
netdev_boot_setup_check
(
dev
);
netdev_boot_setup_check
(
dev
);
...
...
drivers/net/sunhme.c
View file @
d66f7b39
...
@@ -2996,7 +2996,7 @@ static void get_hme_mac_nonsparc(struct pci_dev *pdev, unsigned char *dev_addr)
...
@@ -2996,7 +2996,7 @@ static void get_hme_mac_nonsparc(struct pci_dev *pdev, unsigned char *dev_addr)
dev_addr
[
0
]
=
0x08
;
dev_addr
[
0
]
=
0x08
;
dev_addr
[
1
]
=
0x00
;
dev_addr
[
1
]
=
0x00
;
dev_addr
[
2
]
=
0x20
;
dev_addr
[
2
]
=
0x20
;
get_random_bytes
(
dev_addr
,
3
);
get_random_bytes
(
&
dev_addr
[
3
]
,
3
);
return
;
return
;
}
}
#endif
/* !(__sparc__) */
#endif
/* !(__sparc__) */
...
...
fs/Kconfig
View file @
d66f7b39
...
@@ -204,7 +204,7 @@ config REISERFS_FS
...
@@ -204,7 +204,7 @@ config REISERFS_FS
In general, ReiserFS is as fast as ext2, but is very efficient with
In general, ReiserFS is as fast as ext2, but is very efficient with
large directories and small files. Additional patches are needed
large directories and small files. Additional patches are needed
for NFS and quotas, please see <http://www.
reiserfs.org
/> for links.
for NFS and quotas, please see <http://www.
namesys.com
/> for links.
It is more easily extended to have features currently found in
It is more easily extended to have features currently found in
database and keyword search systems than block allocation based file
database and keyword search systems than block allocation based file
...
@@ -212,7 +212,7 @@ config REISERFS_FS
...
@@ -212,7 +212,7 @@ config REISERFS_FS
plugins consistent with our motto ``It takes more than a license to
plugins consistent with our motto ``It takes more than a license to
make source code open.''
make source code open.''
Read <http://www.
reiserfs.org
/> to learn more about reiserfs.
Read <http://www.
namesys.com
/> to learn more about reiserfs.
Sponsored by Threshold Networks, Emusic.com, and Bigstorage.com.
Sponsored by Threshold Networks, Emusic.com, and Bigstorage.com.
...
...
fs/ext2/acl.c
View file @
d66f7b39
...
@@ -19,7 +19,7 @@ static struct posix_acl *
...
@@ -19,7 +19,7 @@ static struct posix_acl *
ext2_acl_from_disk
(
const
void
*
value
,
size_t
size
)
ext2_acl_from_disk
(
const
void
*
value
,
size_t
size
)
{
{
const
char
*
end
=
(
char
*
)
value
+
size
;
const
char
*
end
=
(
char
*
)
value
+
size
;
size_
t
n
,
count
;
in
t
n
,
count
;
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
if
(
!
value
)
if
(
!
value
)
...
...
fs/ext3/acl.c
View file @
d66f7b39
...
@@ -20,7 +20,7 @@ static struct posix_acl *
...
@@ -20,7 +20,7 @@ static struct posix_acl *
ext3_acl_from_disk
(
const
void
*
value
,
size_t
size
)
ext3_acl_from_disk
(
const
void
*
value
,
size_t
size
)
{
{
const
char
*
end
=
(
char
*
)
value
+
size
;
const
char
*
end
=
(
char
*
)
value
+
size
;
size_
t
n
,
count
;
in
t
n
,
count
;
struct
posix_acl
*
acl
;
struct
posix_acl
*
acl
;
if
(
!
value
)
if
(
!
value
)
...
...
fs/ext3/inode.c
View file @
d66f7b39
...
@@ -769,7 +769,6 @@ ext3_get_block_handle(handle_t *handle, struct inode *inode, sector_t iblock,
...
@@ -769,7 +769,6 @@ ext3_get_block_handle(handle_t *handle, struct inode *inode, sector_t iblock,
int
boundary
=
0
;
int
boundary
=
0
;
int
depth
=
ext3_block_to_path
(
inode
,
iblock
,
offsets
,
&
boundary
);
int
depth
=
ext3_block_to_path
(
inode
,
iblock
,
offsets
,
&
boundary
);
struct
ext3_inode_info
*
ei
=
EXT3_I
(
inode
);
struct
ext3_inode_info
*
ei
=
EXT3_I
(
inode
);
loff_t
new_size
;
J_ASSERT
(
handle
!=
NULL
||
create
==
0
);
J_ASSERT
(
handle
!=
NULL
||
create
==
0
);
...
@@ -834,23 +833,17 @@ ext3_get_block_handle(handle_t *handle, struct inode *inode, sector_t iblock,
...
@@ -834,23 +833,17 @@ ext3_get_block_handle(handle_t *handle, struct inode *inode, sector_t iblock,
if
(
!
err
)
if
(
!
err
)
err
=
ext3_splice_branch
(
handle
,
inode
,
iblock
,
chain
,
err
=
ext3_splice_branch
(
handle
,
inode
,
iblock
,
chain
,
partial
,
left
);
partial
,
left
);
/* i_disksize growing is protected by truncate_sem
* don't forget to protect it if you're about to implement
* concurrent ext3_get_block() -bzzz */
if
(
!
err
&&
extend_disksize
&&
inode
->
i_size
>
ei
->
i_disksize
)
ei
->
i_disksize
=
inode
->
i_size
;
up
(
&
ei
->
truncate_sem
);
up
(
&
ei
->
truncate_sem
);
if
(
err
==
-
EAGAIN
)
if
(
err
==
-
EAGAIN
)
goto
changed
;
goto
changed
;
if
(
err
)
if
(
err
)
goto
cleanup
;
goto
cleanup
;
if
(
extend_disksize
)
{
/*
* This is not racy against ext3_truncate's modification of
* i_disksize because VM/VFS ensures that the file cannot be
* extended while truncate is in progress. It is racy between
* multiple parallel instances of get_block, but we have BKL.
*/
new_size
=
inode
->
i_size
;
if
(
new_size
>
ei
->
i_disksize
)
ei
->
i_disksize
=
new_size
;
}
set_buffer_new
(
bh_result
);
set_buffer_new
(
bh_result
);
goto
got_it
;
goto
got_it
;
...
...
fs/inode.c
View file @
d66f7b39
...
@@ -453,7 +453,7 @@ static void prune_icache(int nr_to_scan)
...
@@ -453,7 +453,7 @@ static void prune_icache(int nr_to_scan)
dispose_list
(
&
freeable
);
dispose_list
(
&
freeable
);
up
(
&
iprune_sem
);
up
(
&
iprune_sem
);
if
(
current_is_kswapd
)
if
(
current_is_kswapd
()
)
mod_page_state
(
kswapd_inodesteal
,
reap
);
mod_page_state
(
kswapd_inodesteal
,
reap
);
else
else
mod_page_state
(
pginodesteal
,
reap
);
mod_page_state
(
pginodesteal
,
reap
);
...
...
fs/reiserfs/procfs.c
View file @
d66f7b39
...
@@ -478,14 +478,15 @@ static void *r_start(struct seq_file *m, loff_t *pos)
...
@@ -478,14 +478,15 @@ static void *r_start(struct seq_file *m, loff_t *pos)
static
void
*
r_next
(
struct
seq_file
*
m
,
void
*
v
,
loff_t
*
pos
)
static
void
*
r_next
(
struct
seq_file
*
m
,
void
*
v
,
loff_t
*
pos
)
{
{
++*
pos
;
++*
pos
;
if
(
v
)
deactivate_super
(
v
);
return
NULL
;
return
NULL
;
}
}
static
void
r_stop
(
struct
seq_file
*
m
,
void
*
v
)
static
void
r_stop
(
struct
seq_file
*
m
,
void
*
v
)
{
{
struct
proc_dir_entry
*
de
=
m
->
private
;
if
(
v
)
struct
super_block
*
s
=
de
->
data
;
deactivate_super
(
v
);
deactivate_super
(
s
);
}
}
static
int
r_show
(
struct
seq_file
*
m
,
void
*
v
)
static
int
r_show
(
struct
seq_file
*
m
,
void
*
v
)
...
...
include/asm-i386/mach-numaq/mach_mpparse.h
View file @
d66f7b39
#ifndef __ASM_MACH_MPPARSE_H
#ifndef __ASM_MACH_MPPARSE_H
#define __ASM_MACH_MPPARSE_H
#define __ASM_MACH_MPPARSE_H
static
void
__init
smp_read_mpc_oem
(
struct
mp_config_oemtable
*
oemtable
,
unsigned
short
oemsize
);
static
inline
void
mpc_oem_bus_info
(
struct
mpc_config_bus
*
m
,
char
*
name
,
static
inline
void
mpc_oem_bus_info
(
struct
mpc_config_bus
*
m
,
char
*
name
,
struct
mpc_config_translation
*
translation
)
struct
mpc_config_translation
*
translation
)
{
{
...
@@ -24,16 +21,6 @@ static inline void mpc_oem_pci_bus(struct mpc_config_bus *m,
...
@@ -24,16 +21,6 @@ static inline void mpc_oem_pci_bus(struct mpc_config_bus *m,
quad_local_to_mp_bus_id
[
quad
][
local
]
=
m
->
mpc_busid
;
quad_local_to_mp_bus_id
[
quad
][
local
]
=
m
->
mpc_busid
;
}
}
static
inline
void
mps_oem_check
(
struct
mp_config_table
*
mpc
,
char
*
oem
,
char
*
productid
)
{
if
(
strncmp
(
oem
,
"IBM NUMA"
,
8
))
printk
(
"Warning! May not be a NUMA-Q system!
\n
"
);
if
(
mpc
->
mpc_oemptr
)
smp_read_mpc_oem
((
struct
mp_config_oemtable
*
)
mpc
->
mpc_oemptr
,
mpc
->
mpc_oemsize
);
}
/* Hook from generic ACPI tables.c */
/* Hook from generic ACPI tables.c */
static
inline
void
acpi_madt_oem_check
(
char
*
oem_id
,
char
*
oem_table_id
)
static
inline
void
acpi_madt_oem_check
(
char
*
oem_id
,
char
*
oem_table_id
)
{
{
...
...
include/linux/netdevice.h
View file @
d66f7b39
...
@@ -511,7 +511,11 @@ extern struct net_device *__dev_get_by_flags(unsigned short flags,
...
@@ -511,7 +511,11 @@ extern struct net_device *__dev_get_by_flags(unsigned short flags,
unsigned
short
mask
);
unsigned
short
mask
);
extern
struct
net_device
*
dev_get_by_name
(
const
char
*
name
);
extern
struct
net_device
*
dev_get_by_name
(
const
char
*
name
);
extern
struct
net_device
*
__dev_get_by_name
(
const
char
*
name
);
extern
struct
net_device
*
__dev_get_by_name
(
const
char
*
name
);
extern
struct
net_device
*
dev_alloc
(
const
char
*
name
,
int
*
err
);
extern
struct
net_device
*
__dev_alloc
(
const
char
*
name
,
int
*
err
);
static
inline
__deprecated
struct
net_device
*
dev_alloc
(
const
char
*
name
,
int
*
err
)
{
return
__dev_alloc
(
name
,
err
);
}
extern
int
dev_alloc_name
(
struct
net_device
*
dev
,
const
char
*
name
);
extern
int
dev_alloc_name
(
struct
net_device
*
dev
,
const
char
*
name
);
extern
int
dev_open
(
struct
net_device
*
dev
);
extern
int
dev_open
(
struct
net_device
*
dev
);
extern
int
dev_close
(
struct
net_device
*
dev
);
extern
int
dev_close
(
struct
net_device
*
dev
);
...
...
init/do_mounts_initrd.c
View file @
d66f7b39
...
@@ -9,6 +9,8 @@
...
@@ -9,6 +9,8 @@
#include "do_mounts.h"
#include "do_mounts.h"
unsigned
long
initrd_start
,
initrd_end
;
int
initrd_below_start_ok
;
unsigned
int
real_root_dev
;
/* do_proc_dointvec cannot handle kdev_t */
unsigned
int
real_root_dev
;
/* do_proc_dointvec cannot handle kdev_t */
static
int
__initdata
old_fd
,
root_fd
;
static
int
__initdata
old_fd
,
root_fd
;
static
int
__initdata
mount_initrd
=
1
;
static
int
__initdata
mount_initrd
=
1
;
...
@@ -99,18 +101,20 @@ static void __init handle_initrd(void)
...
@@ -99,18 +101,20 @@ static void __init handle_initrd(void)
int
__init
initrd_load
(
void
)
int
__init
initrd_load
(
void
)
{
{
if
(
!
mount_initrd
)
if
(
mount_initrd
)
{
return
0
;
create_dev
(
"/dev/ram"
,
Root_RAM0
,
NULL
);
/*
create_dev
(
"/dev/ram"
,
MKDEV
(
RAMDISK_MAJOR
,
0
),
NULL
);
* Load the initrd data into /dev/ram0. Execute it as initrd
create_dev
(
"/dev/initrd"
,
MKDEV
(
RAMDISK_MAJOR
,
INITRD_MINOR
),
NULL
);
* unless /dev/ram0 is supposed to be our actual root device,
/* Load the initrd data into /dev/ram0. Execute it as initrd unless
* in that case the ram disk is just set up here, and gets
* /dev/ram0 is supposed to be our actual root device, in
* mounted in the normal path.
* that case the ram disk is just set up here, and gets
*/
* mounted in the normal path. */
if
(
rd_load_image
(
"/dev/initrd"
)
&&
ROOT_DEV
!=
Root_RAM0
)
{
if
(
rd_load_image
(
"/dev/initrd"
)
&&
ROOT_DEV
!=
Root_RAM0
)
{
sys_unlink
(
"/dev/initrd"
);
handle_initrd
();
handle_initrd
();
return
1
;
return
1
;
}
}
}
sys_unlink
(
"/dev/initrd"
);
return
0
;
return
0
;
}
}
init/initramfs.c
View file @
d66f7b39
...
@@ -8,9 +8,11 @@
...
@@ -8,9 +8,11 @@
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/string.h>
#include <linux/string.h>
static
__initdata
char
*
message
;
static
void
__init
error
(
char
*
x
)
static
void
__init
error
(
char
*
x
)
{
{
panic
(
"populate_root: %s
\n
"
,
x
);
if
(
!
message
)
message
=
x
;
}
}
static
void
__init
*
malloc
(
int
size
)
static
void
__init
*
malloc
(
int
size
)
...
@@ -63,7 +65,7 @@ static char __init *find_link(int major, int minor, int ino, char *name)
...
@@ -63,7 +65,7 @@ static char __init *find_link(int major, int minor, int ino, char *name)
}
}
q
=
(
struct
hash
*
)
malloc
(
sizeof
(
struct
hash
));
q
=
(
struct
hash
*
)
malloc
(
sizeof
(
struct
hash
));
if
(
!
q
)
if
(
!
q
)
error
(
"can't allocate link hash entry"
);
panic
(
"can't allocate link hash entry"
);
q
->
ino
=
ino
;
q
->
ino
=
ino
;
q
->
minor
=
minor
;
q
->
minor
=
minor
;
q
->
major
=
major
;
q
->
major
=
major
;
...
@@ -119,7 +121,7 @@ static void __init parse_header(char *s)
...
@@ -119,7 +121,7 @@ static void __init parse_header(char *s)
/* FSM */
/* FSM */
enum
state
{
static
__initdata
enum
state
{
Start
,
Start
,
Collect
,
Collect
,
GotHeader
,
GotHeader
,
...
@@ -130,9 +132,11 @@ enum state {
...
@@ -130,9 +132,11 @@ enum state {
Reset
Reset
}
state
,
next_state
;
}
state
,
next_state
;
char
*
victim
;
static
__initdata
char
*
victim
;
unsigned
count
;
static
__initdata
unsigned
count
;
loff_t
this_header
,
next_header
;
static
__initdata
loff_t
this_header
,
next_header
;
static
__initdata
int
dry_run
;
static
inline
void
eat
(
unsigned
n
)
static
inline
void
eat
(
unsigned
n
)
{
{
...
@@ -185,23 +189,30 @@ static int __init do_collect(void)
...
@@ -185,23 +189,30 @@ static int __init do_collect(void)
static
int
__init
do_header
(
void
)
static
int
__init
do_header
(
void
)
{
{
if
(
memcmp
(
collected
,
"070701"
,
6
))
{
error
(
"no cpio magic"
);
return
1
;
}
parse_header
(
collected
);
parse_header
(
collected
);
next_header
=
this_header
+
N_ALIGN
(
name_len
)
+
body_len
;
next_header
=
this_header
+
N_ALIGN
(
name_len
)
+
body_len
;
next_header
=
(
next_header
+
3
)
&
~
3
;
next_header
=
(
next_header
+
3
)
&
~
3
;
if
(
dry_run
)
{
read_into
(
name_buf
,
N_ALIGN
(
name_len
),
GotName
);
return
0
;
}
state
=
SkipIt
;
if
(
name_len
<=
0
||
name_len
>
PATH_MAX
)
if
(
name_len
<=
0
||
name_len
>
PATH_MAX
)
state
=
SkipIt
;
return
0
;
else
if
(
S_ISLNK
(
mode
))
{
if
(
S_ISLNK
(
mode
))
{
if
(
body_len
>
PATH_MAX
)
if
(
body_len
>
PATH_MAX
)
state
=
SkipIt
;
return
0
;
else
{
collect
=
collected
=
symlink_buf
;
collect
=
collected
=
symlink_buf
;
remains
=
N_ALIGN
(
name_len
)
+
body_len
;
remains
=
N_ALIGN
(
name_len
)
+
body_len
;
next_state
=
GotSymlink
;
next_state
=
GotSymlink
;
state
=
Collect
;
state
=
Collect
;
return
0
;
}
}
}
else
if
(
body_len
&&
!
S_ISREG
(
mode
))
if
(
S_ISREG
(
mode
)
||
!
body_len
)
state
=
SkipIt
;
else
read_into
(
name_buf
,
N_ALIGN
(
name_len
),
GotName
);
read_into
(
name_buf
,
N_ALIGN
(
name_len
),
GotName
);
return
0
;
return
0
;
}
}
...
@@ -248,6 +259,8 @@ static int __init do_name(void)
...
@@ -248,6 +259,8 @@ static int __init do_name(void)
next_state
=
Reset
;
next_state
=
Reset
;
return
0
;
return
0
;
}
}
if
(
dry_run
)
return
0
;
if
(
S_ISREG
(
mode
))
{
if
(
S_ISREG
(
mode
))
{
if
(
maybe_link
()
>=
0
)
{
if
(
maybe_link
()
>=
0
)
{
wfd
=
sys_open
(
collected
,
O_WRONLY
|
O_CREAT
,
mode
);
wfd
=
sys_open
(
collected
,
O_WRONLY
|
O_CREAT
,
mode
);
...
@@ -268,8 +281,7 @@ static int __init do_name(void)
...
@@ -268,8 +281,7 @@ static int __init do_name(void)
sys_chown
(
collected
,
uid
,
gid
);
sys_chown
(
collected
,
uid
,
gid
);
sys_chmod
(
collected
,
mode
);
sys_chmod
(
collected
,
mode
);
}
}
}
else
}
panic
(
"populate_root: bogus mode: %o
\n
"
,
mode
);
return
0
;
return
0
;
}
}
...
@@ -323,13 +335,14 @@ static int __init write_buffer(char *buf, unsigned len)
...
@@ -323,13 +335,14 @@ static int __init write_buffer(char *buf, unsigned len)
static
void
__init
flush_buffer
(
char
*
buf
,
unsigned
len
)
static
void
__init
flush_buffer
(
char
*
buf
,
unsigned
len
)
{
{
int
written
;
int
written
;
while
((
written
=
write_buffer
(
buf
,
len
))
<
len
)
{
if
(
message
)
return
;
while
((
written
=
write_buffer
(
buf
,
len
))
<
len
&&
!
message
)
{
char
c
=
buf
[
written
];
char
c
=
buf
[
written
];
if
(
c
==
'0'
)
{
if
(
c
==
'0'
)
{
buf
+=
written
;
buf
+=
written
;
len
-=
written
;
len
-=
written
;
state
=
Start
;
state
=
Start
;
continue
;
}
else
}
else
error
(
"junk in compressed archive"
);
error
(
"junk in compressed archive"
);
}
}
...
@@ -408,18 +421,20 @@ static void __init flush_window(void)
...
@@ -408,18 +421,20 @@ static void __init flush_window(void)
outcnt
=
0
;
outcnt
=
0
;
}
}
static
void
__init
unpack_to_rootfs
(
char
*
buf
,
unsigned
len
)
char
*
__init
unpack_to_rootfs
(
char
*
buf
,
unsigned
len
,
int
check_only
)
{
{
int
written
;
int
written
;
dry_run
=
check_only
;
header_buf
=
malloc
(
110
);
header_buf
=
malloc
(
110
);
symlink_buf
=
malloc
(
PATH_MAX
+
N_ALIGN
(
PATH_MAX
)
+
1
);
symlink_buf
=
malloc
(
PATH_MAX
+
N_ALIGN
(
PATH_MAX
)
+
1
);
name_buf
=
malloc
(
N_ALIGN
(
PATH_MAX
));
name_buf
=
malloc
(
N_ALIGN
(
PATH_MAX
));
window
=
malloc
(
WSIZE
);
window
=
malloc
(
WSIZE
);
if
(
!
window
||
!
header_buf
||
!
symlink_buf
||
!
name_buf
)
if
(
!
window
||
!
header_buf
||
!
symlink_buf
||
!
name_buf
)
error
(
"can't allocate buffers"
);
panic
(
"can't allocate buffers"
);
state
=
Start
;
state
=
Start
;
this_header
=
0
;
this_header
=
0
;
while
(
len
)
{
message
=
NULL
;
while
(
!
message
&&
len
)
{
loff_t
saved_offset
=
this_header
;
loff_t
saved_offset
=
this_header
;
if
(
*
buf
==
'0'
&&
!
(
this_header
&
3
))
{
if
(
*
buf
==
'0'
&&
!
(
this_header
&
3
))
{
state
=
Start
;
state
=
Start
;
...
@@ -427,7 +442,8 @@ static void __init unpack_to_rootfs(char *buf, unsigned len)
...
@@ -427,7 +442,8 @@ static void __init unpack_to_rootfs(char *buf, unsigned len)
buf
+=
written
;
buf
+=
written
;
len
-=
written
;
len
-=
written
;
continue
;
continue
;
}
else
if
(
!*
buf
)
{
}
if
(
!*
buf
)
{
buf
++
;
buf
++
;
len
--
;
len
--
;
this_header
++
;
this_header
++
;
...
@@ -442,7 +458,7 @@ static void __init unpack_to_rootfs(char *buf, unsigned len)
...
@@ -442,7 +458,7 @@ static void __init unpack_to_rootfs(char *buf, unsigned len)
crc
=
(
ulg
)
0xffffffffL
;
/* shift register contents */
crc
=
(
ulg
)
0xffffffffL
;
/* shift register contents */
makecrc
();
makecrc
();
if
(
gunzip
())
if
(
gunzip
())
error
(
"ungzip failed"
)
;
message
=
"ungzip failed"
;
if
(
state
!=
Reset
)
if
(
state
!=
Reset
)
error
(
"junk in gzipped archive"
);
error
(
"junk in gzipped archive"
);
this_header
=
saved_offset
+
inptr
;
this_header
=
saved_offset
+
inptr
;
...
@@ -453,12 +469,41 @@ static void __init unpack_to_rootfs(char *buf, unsigned len)
...
@@ -453,12 +469,41 @@ static void __init unpack_to_rootfs(char *buf, unsigned len)
free
(
name_buf
);
free
(
name_buf
);
free
(
symlink_buf
);
free
(
symlink_buf
);
free
(
header_buf
);
free
(
header_buf
);
return
message
;
}
}
extern
char
__initramfs_start
,
__initramfs_end
;
extern
char
__initramfs_start
,
__initramfs_end
;
#ifdef CONFIG_BLK_DEV_INITRD
#include <linux/initrd.h>
#endif
void
__init
populate_rootfs
(
void
)
void
__init
populate_rootfs
(
void
)
{
{
unpack_to_rootfs
(
&
__initramfs_start
,
char
*
err
=
unpack_to_rootfs
(
&
__initramfs_start
,
&
__initramfs_end
-
&
__initramfs_start
);
&
__initramfs_end
-
&
__initramfs_start
,
0
);
if
(
err
)
panic
(
err
);
#ifdef CONFIG_BLK_DEV_INITRD
if
(
initrd_start
)
{
int
fd
;
printk
(
KERN_INFO
"checking if image is initramfs..."
);
err
=
unpack_to_rootfs
((
char
*
)
initrd_start
,
initrd_end
-
initrd_start
,
1
);
if
(
!
err
)
{
printk
(
" it is
\n
"
);
unpack_to_rootfs
((
char
*
)
initrd_start
,
initrd_end
-
initrd_start
,
0
);
free_initrd_mem
(
initrd_start
,
initrd_end
);
return
;
}
printk
(
"it isn't (%s); looks like an initrd
\n
"
,
err
);
fd
=
sys_open
(
"/dev/initrd"
,
O_WRONLY
|
O_CREAT
,
700
);
if
(
fd
>=
0
)
{
sys_write
(
fd
,
(
char
*
)
initrd_start
,
initrd_end
-
initrd_start
);
sys_close
(
fd
);
free_initrd_mem
(
initrd_start
,
initrd_end
);
}
}
#endif
}
}
kernel/sched.c
View file @
d66f7b39
...
@@ -2849,7 +2849,7 @@ void __might_sleep(char *file, int line)
...
@@ -2849,7 +2849,7 @@ void __might_sleep(char *file, int line)
static
unsigned
long
prev_jiffy
;
/* ratelimiting */
static
unsigned
long
prev_jiffy
;
/* ratelimiting */
if
(
in_atomic
()
||
irqs_disabled
())
{
if
(
in_atomic
()
||
irqs_disabled
())
{
if
(
time_before
(
jiffies
,
prev_jiffy
+
HZ
))
if
(
time_before
(
jiffies
,
prev_jiffy
+
HZ
)
&&
prev_jiffy
)
return
;
return
;
prev_jiffy
=
jiffies
;
prev_jiffy
=
jiffies
;
printk
(
KERN_ERR
"Debug: sleeping function called from invalid"
printk
(
KERN_ERR
"Debug: sleeping function called from invalid"
...
...
mm/swapfile.c
View file @
d66f7b39
...
@@ -1318,6 +1318,10 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags)
...
@@ -1318,6 +1318,10 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags)
/*
/*
* Read the swap header.
* Read the swap header.
*/
*/
if
(
!
mapping
->
a_ops
->
readpage
)
{
error
=
-
EINVAL
;
goto
bad_swap
;
}
page
=
read_cache_page
(
mapping
,
0
,
page
=
read_cache_page
(
mapping
,
0
,
(
filler_t
*
)
mapping
->
a_ops
->
readpage
,
swap_file
);
(
filler_t
*
)
mapping
->
a_ops
->
readpage
,
swap_file
);
if
(
IS_ERR
(
page
))
{
if
(
IS_ERR
(
page
))
{
...
...
net/bridge/netfilter/ebt_among.c
View file @
d66f7b39
...
@@ -175,7 +175,7 @@ static int ebt_among_check(const char *tablename, unsigned int hookmask,
...
@@ -175,7 +175,7 @@ static int ebt_among_check(const char *tablename, unsigned int hookmask,
if
(
datalen
!=
EBT_ALIGN
(
expected_length
))
{
if
(
datalen
!=
EBT_ALIGN
(
expected_length
))
{
printk
(
KERN_WARNING
printk
(
KERN_WARNING
"ebtables: among: wrong size: %d"
"ebtables: among: wrong size: %d"
"against expected %d, rounded to %d
\n
"
,
"against expected %d, rounded to %
Z
d
\n
"
,
datalen
,
expected_length
,
datalen
,
expected_length
,
EBT_ALIGN
(
expected_length
));
EBT_ALIGN
(
expected_length
));
return
-
EINVAL
;
return
-
EINVAL
;
...
...
net/core/dev.c
View file @
d66f7b39
...
@@ -646,11 +646,12 @@ int dev_alloc_name(struct net_device *dev, const char *name)
...
@@ -646,11 +646,12 @@ int dev_alloc_name(struct net_device *dev, const char *name)
* failed. The cause of an error is returned as a negative errno code
* failed. The cause of an error is returned as a negative errno code
* in the variable @err points to.
* in the variable @err points to.
*
*
* The caller must hold the @dev_base or RTNL locks when doing this in
* This call is deprecated in favor of alloc_netdev because
* the caller must hold the @dev_base or RTNL locks when doing this in
* order to avoid duplicate name allocations.
* order to avoid duplicate name allocations.
*/
*/
struct
net_device
*
dev_alloc
(
const
char
*
name
,
int
*
err
)
struct
net_device
*
__
dev_alloc
(
const
char
*
name
,
int
*
err
)
{
{
struct
net_device
*
dev
=
kmalloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
struct
net_device
*
dev
=
kmalloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
...
@@ -2997,7 +2998,7 @@ EXPORT_SYMBOL(__dev_remove_pack);
...
@@ -2997,7 +2998,7 @@ EXPORT_SYMBOL(__dev_remove_pack);
EXPORT_SYMBOL
(
__skb_linearize
);
EXPORT_SYMBOL
(
__skb_linearize
);
EXPORT_SYMBOL
(
call_netdevice_notifiers
);
EXPORT_SYMBOL
(
call_netdevice_notifiers
);
EXPORT_SYMBOL
(
dev_add_pack
);
EXPORT_SYMBOL
(
dev_add_pack
);
EXPORT_SYMBOL
(
dev_alloc
);
EXPORT_SYMBOL
(
__
dev_alloc
);
EXPORT_SYMBOL
(
dev_alloc_name
);
EXPORT_SYMBOL
(
dev_alloc_name
);
EXPORT_SYMBOL
(
dev_close
);
EXPORT_SYMBOL
(
dev_close
);
EXPORT_SYMBOL
(
dev_get_by_flags
);
EXPORT_SYMBOL
(
dev_get_by_flags
);
...
...
net/ipv4/ip_gre.c
View file @
d66f7b39
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
#include <net/arp.h>
#include <net/arp.h>
#include <net/checksum.h>
#include <net/checksum.h>
#include <net/inet_ecn.h>
#include <net/inet_ecn.h>
#include <net/xfrm.h>
#ifdef CONFIG_IPV6
#ifdef CONFIG_IPV6
#include <net/ipv6.h>
#include <net/ipv6.h>
...
@@ -600,6 +601,9 @@ int ipgre_rcv(struct sk_buff *skb)
...
@@ -600,6 +601,9 @@ int ipgre_rcv(struct sk_buff *skb)
read_lock
(
&
ipgre_lock
);
read_lock
(
&
ipgre_lock
);
if
((
tunnel
=
ipgre_tunnel_lookup
(
iph
->
saddr
,
iph
->
daddr
,
key
))
!=
NULL
)
{
if
((
tunnel
=
ipgre_tunnel_lookup
(
iph
->
saddr
,
iph
->
daddr
,
key
))
!=
NULL
)
{
secpath_put
(
skb
->
sp
);
skb
->
sp
=
NULL
;
skb
->
mac
.
raw
=
skb
->
nh
.
raw
;
skb
->
mac
.
raw
=
skb
->
nh
.
raw
;
skb
->
nh
.
raw
=
__pskb_pull
(
skb
,
offset
);
skb
->
nh
.
raw
=
__pskb_pull
(
skb
,
offset
);
memset
(
&
(
IPCB
(
skb
)
->
opt
),
0
,
sizeof
(
struct
ip_options
));
memset
(
&
(
IPCB
(
skb
)
->
opt
),
0
,
sizeof
(
struct
ip_options
));
...
...
net/ipv4/ip_output.c
View file @
d66f7b39
...
@@ -493,7 +493,7 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff*))
...
@@ -493,7 +493,7 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff*))
goto
slow_path
;
goto
slow_path
;
/* Correct socket ownership. */
/* Correct socket ownership. */
if
(
frag
->
sk
==
NULL
)
if
(
frag
->
sk
==
NULL
&&
skb
->
sk
)
goto
slow_path
;
goto
slow_path
;
/* Partially cloned skb? */
/* Partially cloned skb? */
...
...
net/ipv4/ipip.c
View file @
d66f7b39
...
@@ -483,6 +483,9 @@ static int ipip_rcv(struct sk_buff *skb)
...
@@ -483,6 +483,9 @@ static int ipip_rcv(struct sk_buff *skb)
return
0
;
return
0
;
}
}
secpath_put
(
skb
->
sp
);
skb
->
sp
=
NULL
;
skb
->
mac
.
raw
=
skb
->
nh
.
raw
;
skb
->
mac
.
raw
=
skb
->
nh
.
raw
;
skb
->
nh
.
raw
=
skb
->
data
;
skb
->
nh
.
raw
=
skb
->
data
;
memset
(
&
(
IPCB
(
skb
)
->
opt
),
0
,
sizeof
(
struct
ip_options
));
memset
(
&
(
IPCB
(
skb
)
->
opt
),
0
,
sizeof
(
struct
ip_options
));
...
...
net/ipv4/tcp_ipv4.c
View file @
d66f7b39
...
@@ -178,9 +178,15 @@ void tcp_bind_hash(struct sock *sk, struct tcp_bind_bucket *tb,
...
@@ -178,9 +178,15 @@ void tcp_bind_hash(struct sock *sk, struct tcp_bind_bucket *tb,
tcp_sk
(
sk
)
->
bind_hash
=
tb
;
tcp_sk
(
sk
)
->
bind_hash
=
tb
;
}
}
static
inline
const
u32
tcp_v4_rcv_saddr
(
const
struct
sock
*
sk
)
{
return
likely
(
sk
->
sk_state
!=
TCP_TIME_WAIT
)
?
inet_sk
(
sk
)
->
rcv_saddr
:
tcptw_sk
(
sk
)
->
tw_rcv_saddr
;
}
static
inline
int
tcp_bind_conflict
(
struct
sock
*
sk
,
struct
tcp_bind_bucket
*
tb
)
static
inline
int
tcp_bind_conflict
(
struct
sock
*
sk
,
struct
tcp_bind_bucket
*
tb
)
{
{
struct
inet_opt
*
inet
=
inet_sk
(
sk
);
const
u32
sk_rcv_saddr
=
tcp_v4_rcv_saddr
(
sk
);
struct
sock
*
sk2
;
struct
sock
*
sk2
;
struct
hlist_node
*
node
;
struct
hlist_node
*
node
;
int
reuse
=
sk
->
sk_reuse
;
int
reuse
=
sk
->
sk_reuse
;
...
@@ -193,9 +199,9 @@ static inline int tcp_bind_conflict(struct sock *sk, struct tcp_bind_bucket *tb)
...
@@ -193,9 +199,9 @@ static inline int tcp_bind_conflict(struct sock *sk, struct tcp_bind_bucket *tb)
sk
->
sk_bound_dev_if
==
sk2
->
sk_bound_dev_if
))
{
sk
->
sk_bound_dev_if
==
sk2
->
sk_bound_dev_if
))
{
if
(
!
reuse
||
!
sk2
->
sk_reuse
||
if
(
!
reuse
||
!
sk2
->
sk_reuse
||
sk2
->
sk_state
==
TCP_LISTEN
)
{
sk2
->
sk_state
==
TCP_LISTEN
)
{
struct
inet_opt
*
inet2
=
inet_sk
(
sk2
);
const
u32
sk2_rcv_saddr
=
tcp_v4_rcv_saddr
(
sk2
);
if
(
!
inet2
->
rcv_saddr
||
!
inet
->
rcv_saddr
||
if
(
!
sk2_rcv_saddr
||
!
sk_
rcv_saddr
||
inet2
->
rcv_saddr
==
inet
->
rcv_saddr
)
sk2_rcv_saddr
==
sk_
rcv_saddr
)
break
;
break
;
}
}
}
}
...
@@ -2145,7 +2151,6 @@ static void *listening_get_first(struct seq_file *seq)
...
@@ -2145,7 +2151,6 @@ static void *listening_get_first(struct seq_file *seq)
if
(
!
sk
)
if
(
!
sk
)
continue
;
continue
;
++
st
->
num
;
if
(
sk
->
sk_family
==
st
->
family
)
{
if
(
sk
->
sk_family
==
st
->
family
)
{
rc
=
sk
;
rc
=
sk
;
goto
out
;
goto
out
;
...
@@ -2159,7 +2164,7 @@ static void *listening_get_first(struct seq_file *seq)
...
@@ -2159,7 +2164,7 @@ static void *listening_get_first(struct seq_file *seq)
for
(
st
->
sbucket
=
0
;
st
->
sbucket
<
TCP_SYNQ_HSIZE
;
for
(
st
->
sbucket
=
0
;
st
->
sbucket
<
TCP_SYNQ_HSIZE
;
++
st
->
sbucket
)
{
++
st
->
sbucket
)
{
for
(
req
=
tp
->
listen_opt
->
syn_table
[
st
->
sbucket
];
for
(
req
=
tp
->
listen_opt
->
syn_table
[
st
->
sbucket
];
req
;
req
=
req
->
dl_next
,
++
st
->
num
)
{
req
;
req
=
req
->
dl_next
)
{
if
(
req
->
class
->
family
!=
st
->
family
)
if
(
req
->
class
->
family
!=
st
->
family
)
continue
;
continue
;
rc
=
req
;
rc
=
req
;
...
@@ -2181,6 +2186,8 @@ static void *listening_get_next(struct seq_file *seq, void *cur)
...
@@ -2181,6 +2186,8 @@ static void *listening_get_next(struct seq_file *seq, void *cur)
struct
sock
*
sk
=
cur
;
struct
sock
*
sk
=
cur
;
struct
tcp_iter_state
*
st
=
seq
->
private
;
struct
tcp_iter_state
*
st
=
seq
->
private
;
++
st
->
num
;
if
(
st
->
state
==
TCP_SEQ_STATE_OPENREQ
)
{
if
(
st
->
state
==
TCP_SEQ_STATE_OPENREQ
)
{
struct
open_request
*
req
=
cur
;
struct
open_request
*
req
=
cur
;
...
@@ -2188,7 +2195,6 @@ static void *listening_get_next(struct seq_file *seq, void *cur)
...
@@ -2188,7 +2195,6 @@ static void *listening_get_next(struct seq_file *seq, void *cur)
req
=
req
->
dl_next
;
req
=
req
->
dl_next
;
while
(
1
)
{
while
(
1
)
{
while
(
req
)
{
while
(
req
)
{
++
st
->
num
;
if
(
req
->
class
->
family
==
st
->
family
)
{
if
(
req
->
class
->
family
==
st
->
family
)
{
cur
=
req
;
cur
=
req
;
goto
out
;
goto
out
;
...
@@ -2235,10 +2241,11 @@ static void *listening_get_idx(struct seq_file *seq, loff_t *pos)
...
@@ -2235,10 +2241,11 @@ static void *listening_get_idx(struct seq_file *seq, loff_t *pos)
{
{
void
*
rc
=
listening_get_first
(
seq
);
void
*
rc
=
listening_get_first
(
seq
);
if
(
rc
)
while
(
rc
&&
*
pos
)
{
while
(
*
pos
&&
(
rc
=
listening_get_next
(
seq
,
rc
)))
rc
=
listening_get_next
(
seq
,
rc
);
--*
pos
;
--*
pos
;
return
*
pos
?
NULL
:
rc
;
}
return
rc
;
}
}
static
void
*
established_get_first
(
struct
seq_file
*
seq
)
static
void
*
established_get_first
(
struct
seq_file
*
seq
)
...
@@ -2254,7 +2261,6 @@ static void *established_get_first(struct seq_file *seq)
...
@@ -2254,7 +2261,6 @@ static void *established_get_first(struct seq_file *seq)
read_lock
(
&
tcp_ehash
[
st
->
bucket
].
lock
);
read_lock
(
&
tcp_ehash
[
st
->
bucket
].
lock
);
sk_for_each
(
sk
,
node
,
&
tcp_ehash
[
st
->
bucket
].
chain
)
{
sk_for_each
(
sk
,
node
,
&
tcp_ehash
[
st
->
bucket
].
chain
)
{
if
(
sk
->
sk_family
!=
st
->
family
)
{
if
(
sk
->
sk_family
!=
st
->
family
)
{
++
st
->
num
;
continue
;
continue
;
}
}
rc
=
sk
;
rc
=
sk
;
...
@@ -2264,7 +2270,6 @@ static void *established_get_first(struct seq_file *seq)
...
@@ -2264,7 +2270,6 @@ static void *established_get_first(struct seq_file *seq)
tw_for_each
(
tw
,
node
,
tw_for_each
(
tw
,
node
,
&
tcp_ehash
[
st
->
bucket
+
tcp_ehash_size
].
chain
)
{
&
tcp_ehash
[
st
->
bucket
+
tcp_ehash_size
].
chain
)
{
if
(
tw
->
tw_family
!=
st
->
family
)
{
if
(
tw
->
tw_family
!=
st
->
family
)
{
++
st
->
num
;
continue
;
continue
;
}
}
rc
=
tw
;
rc
=
tw
;
...
@@ -2284,12 +2289,13 @@ static void *established_get_next(struct seq_file *seq, void *cur)
...
@@ -2284,12 +2289,13 @@ static void *established_get_next(struct seq_file *seq, void *cur)
struct
hlist_node
*
node
;
struct
hlist_node
*
node
;
struct
tcp_iter_state
*
st
=
seq
->
private
;
struct
tcp_iter_state
*
st
=
seq
->
private
;
++
st
->
num
;
if
(
st
->
state
==
TCP_SEQ_STATE_TIME_WAIT
)
{
if
(
st
->
state
==
TCP_SEQ_STATE_TIME_WAIT
)
{
tw
=
cur
;
tw
=
cur
;
tw
=
tw_next
(
tw
);
tw
=
tw_next
(
tw
);
get_tw:
get_tw:
while
(
tw
&&
tw
->
tw_family
!=
st
->
family
)
{
while
(
tw
&&
tw
->
tw_family
!=
st
->
family
)
{
++
st
->
num
;
tw
=
tw_next
(
tw
);
tw
=
tw_next
(
tw
);
}
}
if
(
tw
)
{
if
(
tw
)
{
...
@@ -2311,7 +2317,6 @@ static void *established_get_next(struct seq_file *seq, void *cur)
...
@@ -2311,7 +2317,6 @@ static void *established_get_next(struct seq_file *seq, void *cur)
sk_for_each_from
(
sk
,
node
)
{
sk_for_each_from
(
sk
,
node
)
{
if
(
sk
->
sk_family
==
st
->
family
)
if
(
sk
->
sk_family
==
st
->
family
)
goto
found
;
goto
found
;
++
st
->
num
;
}
}
st
->
state
=
TCP_SEQ_STATE_TIME_WAIT
;
st
->
state
=
TCP_SEQ_STATE_TIME_WAIT
;
...
@@ -2327,10 +2332,11 @@ static void *established_get_idx(struct seq_file *seq, loff_t pos)
...
@@ -2327,10 +2332,11 @@ static void *established_get_idx(struct seq_file *seq, loff_t pos)
{
{
void
*
rc
=
established_get_first
(
seq
);
void
*
rc
=
established_get_first
(
seq
);
if
(
rc
)
while
(
rc
&&
pos
)
{
while
(
pos
&&
(
rc
=
established_get_next
(
seq
,
rc
)))
rc
=
established_get_next
(
seq
,
rc
);
--
pos
;
--
pos
;
return
pos
?
NULL
:
rc
;
}
return
rc
;
}
}
static
void
*
tcp_get_idx
(
struct
seq_file
*
seq
,
loff_t
pos
)
static
void
*
tcp_get_idx
(
struct
seq_file
*
seq
,
loff_t
pos
)
...
@@ -2354,6 +2360,8 @@ static void *tcp_get_idx(struct seq_file *seq, loff_t pos)
...
@@ -2354,6 +2360,8 @@ static void *tcp_get_idx(struct seq_file *seq, loff_t pos)
static
void
*
tcp_seq_start
(
struct
seq_file
*
seq
,
loff_t
*
pos
)
static
void
*
tcp_seq_start
(
struct
seq_file
*
seq
,
loff_t
*
pos
)
{
{
struct
tcp_iter_state
*
st
=
seq
->
private
;
st
->
num
=
0
;
return
*
pos
?
tcp_get_idx
(
seq
,
*
pos
-
1
)
:
SEQ_START_TOKEN
;
return
*
pos
?
tcp_get_idx
(
seq
,
*
pos
-
1
)
:
SEQ_START_TOKEN
;
}
}
...
...
net/ipv6/ip6_tunnel.c
View file @
d66f7b39
...
@@ -47,6 +47,7 @@
...
@@ -47,6 +47,7 @@
#include <net/ip6_route.h>
#include <net/ip6_route.h>
#include <net/addrconf.h>
#include <net/addrconf.h>
#include <net/ip6_tunnel.h>
#include <net/ip6_tunnel.h>
#include <net/xfrm.h>
MODULE_AUTHOR
(
"Ville Nuorvala"
);
MODULE_AUTHOR
(
"Ville Nuorvala"
);
MODULE_DESCRIPTION
(
"IPv6-in-IPv6 tunnel"
);
MODULE_DESCRIPTION
(
"IPv6-in-IPv6 tunnel"
);
...
@@ -514,6 +515,8 @@ int ip6ip6_rcv(struct sk_buff **pskb, unsigned int *nhoffp)
...
@@ -514,6 +515,8 @@ int ip6ip6_rcv(struct sk_buff **pskb, unsigned int *nhoffp)
read_unlock
(
&
ip6ip6_lock
);
read_unlock
(
&
ip6ip6_lock
);
goto
discard
;
goto
discard
;
}
}
secpath_put
(
skb
->
sp
);
skb
->
sp
=
NULL
;
skb
->
mac
.
raw
=
skb
->
nh
.
raw
;
skb
->
mac
.
raw
=
skb
->
nh
.
raw
;
skb
->
nh
.
raw
=
skb
->
data
;
skb
->
nh
.
raw
=
skb
->
data
;
skb
->
protocol
=
htons
(
ETH_P_IPV6
);
skb
->
protocol
=
htons
(
ETH_P_IPV6
);
...
...
net/ipv6/sit.c
View file @
d66f7b39
...
@@ -49,6 +49,7 @@
...
@@ -49,6 +49,7 @@
#include <net/icmp.h>
#include <net/icmp.h>
#include <net/ipip.h>
#include <net/ipip.h>
#include <net/inet_ecn.h>
#include <net/inet_ecn.h>
#include <net/xfrm.h>
/*
/*
This version of net/ipv6/sit.c is cloned of net/ipv4/ip_gre.c
This version of net/ipv6/sit.c is cloned of net/ipv4/ip_gre.c
...
@@ -376,6 +377,8 @@ static int ipip6_rcv(struct sk_buff *skb)
...
@@ -376,6 +377,8 @@ static int ipip6_rcv(struct sk_buff *skb)
read_lock
(
&
ipip6_lock
);
read_lock
(
&
ipip6_lock
);
if
((
tunnel
=
ipip6_tunnel_lookup
(
iph
->
saddr
,
iph
->
daddr
))
!=
NULL
)
{
if
((
tunnel
=
ipip6_tunnel_lookup
(
iph
->
saddr
,
iph
->
daddr
))
!=
NULL
)
{
secpath_put
(
skb
->
sp
);
skb
->
sp
=
NULL
;
skb
->
mac
.
raw
=
skb
->
nh
.
raw
;
skb
->
mac
.
raw
=
skb
->
nh
.
raw
;
skb
->
nh
.
raw
=
skb
->
data
;
skb
->
nh
.
raw
=
skb
->
data
;
memset
(
&
(
IPCB
(
skb
)
->
opt
),
0
,
sizeof
(
struct
ip_options
));
memset
(
&
(
IPCB
(
skb
)
->
opt
),
0
,
sizeof
(
struct
ip_options
));
...
...
scripts/makeman
View file @
d66f7b39
...
@@ -12,7 +12,7 @@ use strict;
...
@@ -12,7 +12,7 @@ use strict;
## $3 -- the filename which contained the sgmldoc output
## $3 -- the filename which contained the sgmldoc output
## (I need this so I know which manpages to convert)
## (I need this so I know which manpages to convert)
my
(
$LISTING
,
$GENERATED
,
$INPUT
,
$OUTPUT
,
$front
,
$mode
,
$filename
);
my
(
$LISTING
,
$GENERATED
,
$INPUT
,
$OUTPUT
,
$front
,
$mode
,
$filename
,
$tmpdir
);
if
(
$ARGV
[
0
]
eq
""){
if
(
$ARGV
[
0
]
eq
""){
die
"
Usage: makeman [convert | install] <dir> <file>
\n
";
die
"
Usage: makeman [convert | install] <dir> <file>
\n
";
...
@@ -22,6 +22,13 @@ if( ! -d "$ARGV[1]" ){
...
@@ -22,6 +22,13 @@ if( ! -d "$ARGV[1]" ){
die
"
Output directory
\"
$ARGV
[1]
\"
does not exist
\n
";
die
"
Output directory
\"
$ARGV
[1]
\"
does not exist
\n
";
}
}
if
(
$ENV
{"
TMPDIR
"}
ne
""){
$tmpdir
=
$ENV
{"
TMPDIR
"};
}
else
{
$tmpdir
=
"
/tmp
";
}
if
(
$ARGV
[
0
]
eq
"
convert
"){
if
(
$ARGV
[
0
]
eq
"
convert
"){
open
LISTING
,
"
grep
\"
<refentrytitle>
\"
$ARGV
[2] |
";
open
LISTING
,
"
grep
\"
<refentrytitle>
\"
$ARGV
[2] |
";
while
(
<
LISTING
>
){
while
(
<
LISTING
>
){
...
@@ -40,29 +47,38 @@ if($ARGV[0] eq "convert"){
...
@@ -40,29 +47,38 @@ if($ARGV[0] eq "convert"){
open
INPUT
,
"
<
$ARGV
[1]/
$filename
.sgml
";
open
INPUT
,
"
<
$ARGV
[1]/
$filename
.sgml
";
$front
=
"";
$front
=
"";
$mode
=
0
;
$mode
=
0
;
while
(
<
INPUT
>
){
if
(
/.*ENDFRONTTAG.*/
){
$mode
=
0
;
}
# The modes used here are:
# mode = 0
# <!-- BEGINFRONTTAG -->
# <!-- <bookinfo> mode = 1
# <!-- <legalnotice> mode = 2
# <!-- ...GPL or whatever...
# <!-- </legalnotice> mode = 4
# <!-- </bookinfo> mode = 3
# <!-- ENDFRONTTAG -->
#
# ...doco...
# I know that some of the if statements in this while loop are in a funny
# order, but that is deliberate...
while
(
<
INPUT
>
){
if
(
$mode
>
0
){
if
(
$mode
>
0
){
s/<!-- //
;
s/<!-- //
;
s/ -->//
;
s/ -->//
;
s/<bookinfo>//
;
s/<docinfo>//i
;
s/<\/bookinfo>//
;
s<\/docinfo>//i
;
s/<docinfo>//
;
s/^[ \t]*//i
;
s<\/docinfo>//
;
s/^[ \t]*//
;
}
}
if
(
$mode
==
2
){
if
(
$mode
==
2
){
if
(
/<para>/
){
if
(
/<para>/
i
){
}
}
elsif
(
/<\/para>/
){
elsif
(
/<\/para>/
i
){
$front
=
"
$front
.
\\\"
\n
";
$front
=
"
$front
.
\\\"
\n
";
}
}
elsif
(
/<\/legalnotice>/
){
elsif
(
/<\/legalnotice>/
i
){
$mode
=
1
;
$mode
=
4
;
}
}
elsif
(
/^[ \t]*$/
){
elsif
(
/^[ \t]*$/
){
}
}
...
@@ -72,69 +88,79 @@ if($ARGV[0] eq "convert"){
...
@@ -72,69 +88,79 @@ if($ARGV[0] eq "convert"){
}
}
if
(
$mode
==
1
){
if
(
$mode
==
1
){
if
(
/<title>(.*)<\/title>/
){
if
(
/<title>(.*)<\/title>/
i
){
$front
=
"
$front
.
\\\"
This documentation was generated from the book titled
\"
$1
\"
, which is part of the Linux kernel source.
\n
.
\\\"
\n
";
$front
=
"
$front
.
\\\"
This documentation was generated from the book titled
\"
$1
\"
, which is part of the Linux kernel source.
\n
.
\\\"
\n
";
}
}
elsif
(
/<legalnotice>/
){
elsif
(
/<legalnotice>/
i
){
$front
=
"
$front
.
\\\"
This documentation comes with the following legal notice:
\n
.
\\\"
\n
";
$front
=
"
$front
.
\\\"
This documentation comes with the following legal notice:
\n
.
\\\"
\n
";
$mode
=
2
;
$mode
=
2
;
}
}
elsif
(
/<author>/
){
elsif
(
/<author>/
i
){
$front
=
"
$front
.
\\\"
Documentation by:
";
$front
=
"
$front
.
\\\"
Documentation by:
";
}
}
elsif
(
/<firstname>(.*)<\/firstname>/
){
elsif
(
/<firstname>(.*)<\/firstname>/
i
){
$front
=
"
$front
$1
";
$front
=
"
$front
$1
";
}
}
elsif
(
/<surname>(.*)<\/surname>/
){
elsif
(
/<surname>(.*)<\/surname>/
i
){
$front
=
"
$front
$1
";
$front
=
"
$front
$1
";
}
}
elsif
(
/<email>(.*)<\/email>/
){
elsif
(
/<email>(.*)<\/email>/
i
){
$front
=
"
$front
($1)
";
$front
=
"
$front
($1)
";
}
}
elsif
(
/\/author>/
){
elsif
(
/\/author>/
i
){
$front
=
"
$front
\n
";
$front
=
"
$front
\n
";
}
}
elsif
(
/<copyright>/
){
elsif
(
/<copyright>/
i
){
$front
=
"
$front
.
\\\"
Documentation copyright:
";
$front
=
"
$front
.
\\\"
Documentation copyright:
";
}
}
elsif
(
/<holder>(.*)<\/holder>/
){
elsif
(
/<holder>(.*)<\/holder>/
i
){
$front
=
"
$front
$1
";
$front
=
"
$front
$1
";
}
}
elsif
(
/<year>(.*)<\/year>/
){
elsif
(
/<year>(.*)<\/year>/
i
){
$front
=
"
$front
$1
";
$front
=
"
$front
$1
";
}
}
elsif
(
/\/copyright>/
){
elsif
(
/\/copyright>/
i
){
$front
=
"
$front
\n
";
$front
=
"
$front
\n
";
}
}
elsif
(
/^[ \t]*$/
elsif
(
/^[ \t]*$/
||
/<affiliation>/
||
/<affiliation>/i
||
/<\/affiliation>/
||
/<\/affiliation>/i
||
/<address>/
||
/<address>/i
||
/<\/address>/
||
/<\/address>/i
||
/<authorgroup>/
||
/<authorgroup>/i
||
/<\/authorgroup>/
||
/<\/authorgroup>/i
||
/<\/legalnotice>/
||
/<\/legalnotice>/i
||
/<date>/
||
/<date>/i
||
/<\/date>/
||
/<\/date>/i
||
/<edition>/
||
/<edition>/i
||
/<\/edition>/
){
||
/<\/edition>/i
||
/<pubdate>/i
||
/<\/pubdate>/i
){
}
}
else
{
else
{
print
"
Unknown tag in manpage conversion:
$_
";
print
"
Unknown tag in manpage conversion:
$_
";
}
}
}
}
if
(
/.*BEGINFRONTTAG.*/
){
if
(
$mode
==
0
){
$mode
=
1
;
if
(
/<bookinfo>/i
){
$mode
=
1
;
}
}
if
(
$mode
==
4
){
if
(
/<\/bookinfo>/i
){
$mode
=
3
;
}
}
}
}
}
close
INPUT
;
close
INPUT
;
system
("
cd
$ARGV
[1]; docbook2man
$filename
.sgml; mv
$filename
.9
/tmp
/$$.9
\n
");
system
("
cd
$ARGV
[1]; docbook2man
$filename
.sgml; mv
$filename
.9
$tmpdir
/$$.9
\n
");
open
GENERATED
,
"
<
/tmp
/$$.9
";
open
GENERATED
,
"
<
$tmpdir
/$$.9
";
open
OUTPUT
,
"
>
$ARGV
[1]/
$filename
.9
";
open
OUTPUT
,
"
>
$ARGV
[1]/
$filename
.9
";
print
OUTPUT
"
$front
";
print
OUTPUT
"
$front
";
...
@@ -146,7 +172,7 @@ if($ARGV[0] eq "convert"){
...
@@ -146,7 +172,7 @@ if($ARGV[0] eq "convert"){
close
GENERATED
;
close
GENERATED
;
system
("
gzip -f
$ARGV
[1]/
$filename
.9
\n
");
system
("
gzip -f
$ARGV
[1]/
$filename
.9
\n
");
unlink
("
/tmp/
$filename
.9
");
unlink
("
$tmpdir
/$$
.9
");
}
}
}
}
elsif
(
$ARGV
[
0
]
eq
"
install
"){
elsif
(
$ARGV
[
0
]
eq
"
install
"){
...
...
scripts/split-man
View file @
d66f7b39
...
@@ -52,7 +52,7 @@ while(<SGML>){
...
@@ -52,7 +52,7 @@ while(<SGML>){
open
REF
,
"
>
$ARGV
[1]/
$filename
.sgml
"
or
open
REF
,
"
>
$ARGV
[1]/
$filename
.sgml
"
or
die
"
Couldn't open output file
\"
$ARGV
[1]/
$filename
.sgml
\"
: $!
\n
";
die
"
Couldn't open output file
\"
$ARGV
[1]/
$filename
.sgml
\"
: $!
\n
";
print
REF
<<EOF;
print
REF
<<EOF;
<!DOCTYPE refentry PUBLIC "-//
Davenport//DTD DocBook V3.0
//EN">
<!DOCTYPE refentry PUBLIC "-//
OASIS//DTD DocBook V4.1
//EN">
<!-- BEGINFRONTTAG: The following is front matter for the parent book -->
<!-- BEGINFRONTTAG: The following is front matter for the parent book -->
$front
$front
...
...
security/selinux/include/security.h
View file @
d66f7b39
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
#define SECCLASS_NULL 0x0000
/* no class */
#define SECCLASS_NULL 0x0000
/* no class */
#define SELINUX_MAGIC 0xf97cff8c
#define SELINUX_MAGIC 0xf97cff8c
#define POLICYDB_VERSION 15
#ifdef CONFIG_SECURITY_SELINUX_BOOTPARAM
#ifdef CONFIG_SECURITY_SELINUX_BOOTPARAM
extern
int
selinux_enabled
;
extern
int
selinux_enabled
;
...
...
security/selinux/selinuxfs.c
View file @
d66f7b39
...
@@ -37,7 +37,8 @@ enum sel_inos {
...
@@ -37,7 +37,8 @@ enum sel_inos {
SEL_ACCESS
,
/* compute access decision */
SEL_ACCESS
,
/* compute access decision */
SEL_CREATE
,
/* compute create labeling decision */
SEL_CREATE
,
/* compute create labeling decision */
SEL_RELABEL
,
/* compute relabeling decision */
SEL_RELABEL
,
/* compute relabeling decision */
SEL_USER
/* compute reachable user contexts */
SEL_USER
,
/* compute reachable user contexts */
SEL_POLICYVERS
/* return policy version for this kernel */
};
};
static
ssize_t
sel_read_enforce
(
struct
file
*
filp
,
char
*
buf
,
static
ssize_t
sel_read_enforce
(
struct
file
*
filp
,
char
*
buf
,
...
@@ -125,6 +126,46 @@ static struct file_operations sel_enforce_ops = {
...
@@ -125,6 +126,46 @@ static struct file_operations sel_enforce_ops = {
.
write
=
sel_write_enforce
,
.
write
=
sel_write_enforce
,
};
};
static
ssize_t
sel_read_policyvers
(
struct
file
*
filp
,
char
*
buf
,
size_t
count
,
loff_t
*
ppos
)
{
char
*
page
;
ssize_t
length
;
ssize_t
end
;
if
(
count
<
0
||
count
>
PAGE_SIZE
)
return
-
EINVAL
;
if
(
!
(
page
=
(
char
*
)
__get_free_page
(
GFP_KERNEL
)))
return
-
ENOMEM
;
memset
(
page
,
0
,
PAGE_SIZE
);
length
=
snprintf
(
page
,
PAGE_SIZE
,
"%u"
,
POLICYDB_VERSION
);
if
(
length
<
0
)
{
free_page
((
unsigned
long
)
page
);
return
length
;
}
if
(
*
ppos
>=
length
)
{
free_page
((
unsigned
long
)
page
);
return
0
;
}
if
(
count
+
*
ppos
>
length
)
count
=
length
-
*
ppos
;
end
=
count
+
*
ppos
;
if
(
copy_to_user
(
buf
,
(
char
*
)
page
+
*
ppos
,
count
))
{
count
=
-
EFAULT
;
goto
out
;
}
*
ppos
=
end
;
out:
free_page
((
unsigned
long
)
page
);
return
count
;
}
static
struct
file_operations
sel_policyvers_ops
=
{
.
read
=
sel_read_policyvers
,
};
static
ssize_t
sel_write_load
(
struct
file
*
file
,
const
char
*
buf
,
static
ssize_t
sel_write_load
(
struct
file
*
file
,
const
char
*
buf
,
size_t
count
,
loff_t
*
ppos
)
size_t
count
,
loff_t
*
ppos
)
...
@@ -568,6 +609,7 @@ static int sel_fill_super(struct super_block * sb, void * data, int silent)
...
@@ -568,6 +609,7 @@ static int sel_fill_super(struct super_block * sb, void * data, int silent)
[
SEL_CREATE
]
=
{
"create"
,
&
transaction_ops
,
S_IRUGO
|
S_IWUGO
},
[
SEL_CREATE
]
=
{
"create"
,
&
transaction_ops
,
S_IRUGO
|
S_IWUGO
},
[
SEL_RELABEL
]
=
{
"relabel"
,
&
transaction_ops
,
S_IRUGO
|
S_IWUGO
},
[
SEL_RELABEL
]
=
{
"relabel"
,
&
transaction_ops
,
S_IRUGO
|
S_IWUGO
},
[
SEL_USER
]
=
{
"user"
,
&
transaction_ops
,
S_IRUGO
|
S_IWUGO
},
[
SEL_USER
]
=
{
"user"
,
&
transaction_ops
,
S_IRUGO
|
S_IWUGO
},
[
SEL_POLICYVERS
]
=
{
"policyvers"
,
&
sel_policyvers_ops
,
S_IRUGO
},
/* last one */
{
""
}
/* last one */
{
""
}
};
};
return
simple_fill_super
(
sb
,
SELINUX_MAGIC
,
selinux_files
);
return
simple_fill_super
(
sb
,
SELINUX_MAGIC
,
selinux_files
);
...
...
security/selinux/ss/policydb.h
View file @
d66f7b39
...
@@ -225,7 +225,6 @@ extern int policydb_read(struct policydb *p, void *fp);
...
@@ -225,7 +225,6 @@ extern int policydb_read(struct policydb *p, void *fp);
#define PERM_SYMTAB_SIZE 32
#define PERM_SYMTAB_SIZE 32
#define POLICYDB_VERSION 15
#define POLICYDB_CONFIG_MLS 1
#define POLICYDB_CONFIG_MLS 1
#define OBJECT_R "object_r"
#define OBJECT_R "object_r"
...
...
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