Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
617e44fd
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
617e44fd
编写于
8月 24, 2005
作者:
J
Jeff Garzik
浏览文件
操作
浏览文件
下载
差异文件
Merge /spare/repo/linux-2.6/
上级
4887f76e
0572e3da
变更
82
隐藏空白更改
内联
并排
Showing
82 changed file
with
314 addition
and
264 deletion
+314
-264
Makefile
Makefile
+1
-1
arch/alpha/Kconfig
arch/alpha/Kconfig
+1
-1
arch/alpha/kernel/smp.c
arch/alpha/kernel/smp.c
+3
-3
arch/alpha/oprofile/common.c
arch/alpha/oprofile/common.c
+3
-3
arch/arm/Kconfig
arch/arm/Kconfig
+1
-1
arch/arm/kernel/traps.c
arch/arm/kernel/traps.c
+1
-1
arch/arm/nwfpe/fpopcode.h
arch/arm/nwfpe/fpopcode.h
+3
-3
arch/i386/kernel/traps.c
arch/i386/kernel/traps.c
+6
-4
arch/ia64/hp/sim/boot/boot_head.S
arch/ia64/hp/sim/boot/boot_head.S
+1
-1
arch/ia64/sn/kernel/io_init.c
arch/ia64/sn/kernel/io_init.c
+10
-8
arch/m32r/Kconfig
arch/m32r/Kconfig
+2
-1
arch/m32r/Kconfig.debug
arch/m32r/Kconfig.debug
+1
-1
arch/m32r/kernel/setup_m32700ut.c
arch/m32r/kernel/setup_m32700ut.c
+3
-1
arch/m32r/kernel/setup_opsput.c
arch/m32r/kernel/setup_opsput.c
+3
-1
arch/m32r/kernel/smpboot.c
arch/m32r/kernel/smpboot.c
+1
-0
arch/m32r/lib/csum_partial_copy.c
arch/m32r/lib/csum_partial_copy.c
+1
-0
arch/m32r/mm/discontig.c
arch/m32r/mm/discontig.c
+2
-0
arch/ppc/Kconfig
arch/ppc/Kconfig
+4
-1
arch/ppc/platforms/4xx/Kconfig
arch/ppc/platforms/4xx/Kconfig
+10
-4
arch/s390/kernel/cpcmd.c
arch/s390/kernel/cpcmd.c
+4
-4
arch/x86_64/pci/k8-bus.c
arch/x86_64/pci/k8-bus.c
+11
-2
drivers/char/Kconfig
drivers/char/Kconfig
+4
-4
drivers/infiniband/Kconfig
drivers/infiniband/Kconfig
+1
-0
drivers/isdn/hisax/Kconfig
drivers/isdn/hisax/Kconfig
+1
-0
drivers/macintosh/Kconfig
drivers/macintosh/Kconfig
+1
-1
drivers/md/md.c
drivers/md/md.c
+3
-4
drivers/media/video/Kconfig
drivers/media/video/Kconfig
+1
-1
drivers/net/Kconfig
drivers/net/Kconfig
+2
-2
drivers/net/ibm_emac/ibm_emac_core.c
drivers/net/ibm_emac/ibm_emac_core.c
+1
-2
drivers/net/tokenring/Kconfig
drivers/net/tokenring/Kconfig
+1
-1
drivers/net/wireless/Kconfig
drivers/net/wireless/Kconfig
+1
-1
drivers/parport/Kconfig
drivers/parport/Kconfig
+1
-1
drivers/pcmcia/pcmcia_resource.c
drivers/pcmcia/pcmcia_resource.c
+1
-0
drivers/s390/cio/qdio.c
drivers/s390/cio/qdio.c
+1
-1
drivers/s390/crypto/z90crypt.h
drivers/s390/crypto/z90crypt.h
+0
-9
drivers/scsi/Kconfig
drivers/scsi/Kconfig
+3
-3
drivers/scsi/arm/Kconfig
drivers/scsi/arm/Kconfig
+1
-1
drivers/serial/Kconfig
drivers/serial/Kconfig
+2
-2
drivers/serial/m32r_sio.c
drivers/serial/m32r_sio.c
+1
-1
drivers/usb/net/usbnet.c
drivers/usb/net/usbnet.c
+1
-1
drivers/usb/net/zd1201.c
drivers/usb/net/zd1201.c
+1
-2
drivers/video/console/Kconfig
drivers/video/console/Kconfig
+1
-1
include/asm-alpha/system.h
include/asm-alpha/system.h
+13
-16
include/asm-arm/arch-ixp4xx/timex.h
include/asm-arm/arch-ixp4xx/timex.h
+4
-2
include/asm-arm/bug.h
include/asm-arm/bug.h
+1
-1
include/asm-arm/cpu-multi32.h
include/asm-arm/cpu-multi32.h
+1
-1
include/asm-arm/cpu-single.h
include/asm-arm/cpu-single.h
+1
-1
include/asm-ia64/io.h
include/asm-ia64/io.h
+0
-8
include/asm-m32r/smp.h
include/asm-m32r/smp.h
+0
-2
include/asm-ppc/time.h
include/asm-ppc/time.h
+1
-1
include/asm-s390/uaccess.h
include/asm-s390/uaccess.h
+2
-19
include/net/ax25.h
include/net/ax25.h
+16
-2
include/net/sock.h
include/net/sock.h
+5
-0
include/sound/core.h
include/sound/core.h
+2
-0
kernel/cpuset.c
kernel/cpuset.c
+17
-0
kernel/timer.c
kernel/timer.c
+1
-1
lib/vsprintf.c
lib/vsprintf.c
+4
-1
net/ax25/af_ax25.c
net/ax25/af_ax25.c
+13
-14
net/ax25/ax25_route.c
net/ax25/ax25_route.c
+7
-5
net/ax25/ax25_uid.c
net/ax25/ax25_uid.c
+36
-47
net/ipv4/inetpeer.c
net/ipv4/inetpeer.c
+7
-4
net/ipv4/netfilter/ip_queue.c
net/ipv4/netfilter/ip_queue.c
+7
-0
net/ipv4/tcp.c
net/ipv4/tcp.c
+1
-1
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_ipv4.c
+7
-2
net/ipv4/tcp_output.c
net/ipv4/tcp_output.c
+0
-4
net/ipv6/netfilter/ip6_queue.c
net/ipv6/netfilter/ip6_queue.c
+7
-0
net/ipv6/tcp_ipv6.c
net/ipv6/tcp_ipv6.c
+7
-2
net/netrom/af_netrom.c
net/netrom/af_netrom.c
+17
-14
net/rose/af_rose.c
net/rose/af_rose.c
+14
-13
net/rose/rose_route.c
net/rose/rose_route.c
+4
-2
net/sched/sch_generic.c
net/sched/sch_generic.c
+1
-0
net/sctp/proc.c
net/sctp/proc.c
+1
-0
net/sunrpc/auth_gss/gss_krb5_crypto.c
net/sunrpc/auth_gss/gss_krb5_crypto.c
+0
-2
sound/Kconfig
sound/Kconfig
+1
-1
sound/core/Makefile
sound/core/Makefile
+1
-1
sound/core/sound.c
sound/core/sound.c
+1
-1
sound/isa/Kconfig
sound/isa/Kconfig
+1
-1
sound/oss/Kconfig
sound/oss/Kconfig
+8
-8
sound/oss/Makefile
sound/oss/Makefile
+1
-1
sound/oss/i810_audio.c
sound/oss/i810_audio.c
+2
-2
sound/oss/vidc.h
sound/oss/vidc.h
+0
-4
sound/pci/Kconfig
sound/pci/Kconfig
+1
-1
未找到文件。
Makefile
浏览文件 @
617e44fd
VERSION
=
2
VERSION
=
2
PATCHLEVEL
=
6
PATCHLEVEL
=
6
SUBLEVEL
=
13
SUBLEVEL
=
13
EXTRAVERSION
=
-rc
6
EXTRAVERSION
=
-rc
7
NAME
=
Woozy Numbat
NAME
=
Woozy Numbat
# *DOCUMENTATION*
# *DOCUMENTATION*
...
...
arch/alpha/Kconfig
浏览文件 @
617e44fd
...
@@ -522,7 +522,7 @@ source "mm/Kconfig"
...
@@ -522,7 +522,7 @@ source "mm/Kconfig"
config NUMA
config NUMA
bool "NUMA Support (EXPERIMENTAL)"
bool "NUMA Support (EXPERIMENTAL)"
depends on DISCONTIGMEM
depends on DISCONTIGMEM
&& BROKEN
help
help
Say Y to compile the kernel to support NUMA (Non-Uniform Memory
Say Y to compile the kernel to support NUMA (Non-Uniform Memory
Access). This option is for configuring high-end multiprocessor
Access). This option is for configuring high-end multiprocessor
...
...
arch/alpha/kernel/smp.c
浏览文件 @
617e44fd
...
@@ -1036,7 +1036,7 @@ debug_spin_lock(spinlock_t * lock, const char *base_file, int line_no)
...
@@ -1036,7 +1036,7 @@ debug_spin_lock(spinlock_t * lock, const char *base_file, int line_no)
" br 1b
\n
"
" br 1b
\n
"
".previous"
".previous"
:
"=r"
(
tmp
),
"=m"
(
lock
->
lock
),
"=r"
(
stuck
)
:
"=r"
(
tmp
),
"=m"
(
lock
->
lock
),
"=r"
(
stuck
)
:
"
1
"
(
lock
->
lock
),
"2"
(
stuck
)
:
"memory"
);
:
"
m
"
(
lock
->
lock
),
"2"
(
stuck
)
:
"memory"
);
if
(
stuck
<
0
)
{
if
(
stuck
<
0
)
{
printk
(
KERN_WARNING
printk
(
KERN_WARNING
...
@@ -1115,7 +1115,7 @@ void _raw_write_lock(rwlock_t * lock)
...
@@ -1115,7 +1115,7 @@ void _raw_write_lock(rwlock_t * lock)
".previous"
".previous"
:
"=m"
(
*
(
volatile
int
*
)
lock
),
"=&r"
(
regx
),
"=&r"
(
regy
),
:
"=m"
(
*
(
volatile
int
*
)
lock
),
"=&r"
(
regx
),
"=&r"
(
regy
),
"=&r"
(
stuck_lock
),
"=&r"
(
stuck_reader
)
"=&r"
(
stuck_lock
),
"=&r"
(
stuck_reader
)
:
"
0
"
(
*
(
volatile
int
*
)
lock
),
"3"
(
stuck_lock
),
"4"
(
stuck_reader
)
:
"memory"
);
:
"
m
"
(
*
(
volatile
int
*
)
lock
),
"3"
(
stuck_lock
),
"4"
(
stuck_reader
)
:
"memory"
);
if
(
stuck_lock
<
0
)
{
if
(
stuck_lock
<
0
)
{
printk
(
KERN_WARNING
"write_lock stuck at %p
\n
"
,
inline_pc
);
printk
(
KERN_WARNING
"write_lock stuck at %p
\n
"
,
inline_pc
);
...
@@ -1153,7 +1153,7 @@ void _raw_read_lock(rwlock_t * lock)
...
@@ -1153,7 +1153,7 @@ void _raw_read_lock(rwlock_t * lock)
" br 1b
\n
"
" br 1b
\n
"
".previous"
".previous"
:
"=m"
(
*
(
volatile
int
*
)
lock
),
"=&r"
(
regx
),
"=&r"
(
stuck_lock
)
:
"=m"
(
*
(
volatile
int
*
)
lock
),
"=&r"
(
regx
),
"=&r"
(
stuck_lock
)
:
"
0
"
(
*
(
volatile
int
*
)
lock
),
"2"
(
stuck_lock
)
:
"memory"
);
:
"
m
"
(
*
(
volatile
int
*
)
lock
),
"2"
(
stuck_lock
)
:
"memory"
);
if
(
stuck_lock
<
0
)
{
if
(
stuck_lock
<
0
)
{
printk
(
KERN_WARNING
"read_lock stuck at %p
\n
"
,
inline_pc
);
printk
(
KERN_WARNING
"read_lock stuck at %p
\n
"
,
inline_pc
);
...
...
arch/alpha/oprofile/common.c
浏览文件 @
617e44fd
...
@@ -65,7 +65,7 @@ op_axp_setup(void)
...
@@ -65,7 +65,7 @@ op_axp_setup(void)
model
->
reg_setup
(
&
reg
,
ctr
,
&
sys
);
model
->
reg_setup
(
&
reg
,
ctr
,
&
sys
);
/* Configure the registers on all cpus. */
/* Configure the registers on all cpus. */
smp_call_function
(
model
->
cpu_setup
,
&
reg
,
0
,
1
);
(
void
)
smp_call_function
(
model
->
cpu_setup
,
&
reg
,
0
,
1
);
model
->
cpu_setup
(
&
reg
);
model
->
cpu_setup
(
&
reg
);
return
0
;
return
0
;
}
}
...
@@ -86,7 +86,7 @@ op_axp_cpu_start(void *dummy)
...
@@ -86,7 +86,7 @@ op_axp_cpu_start(void *dummy)
static
int
static
int
op_axp_start
(
void
)
op_axp_start
(
void
)
{
{
smp_call_function
(
op_axp_cpu_start
,
NULL
,
0
,
1
);
(
void
)
smp_call_function
(
op_axp_cpu_start
,
NULL
,
0
,
1
);
op_axp_cpu_start
(
NULL
);
op_axp_cpu_start
(
NULL
);
return
0
;
return
0
;
}
}
...
@@ -101,7 +101,7 @@ op_axp_cpu_stop(void *dummy)
...
@@ -101,7 +101,7 @@ op_axp_cpu_stop(void *dummy)
static
void
static
void
op_axp_stop
(
void
)
op_axp_stop
(
void
)
{
{
smp_call_function
(
op_axp_cpu_stop
,
NULL
,
0
,
1
);
(
void
)
smp_call_function
(
op_axp_cpu_stop
,
NULL
,
0
,
1
);
op_axp_cpu_stop
(
NULL
);
op_axp_cpu_stop
(
NULL
);
}
}
...
...
arch/arm/Kconfig
浏览文件 @
617e44fd
...
@@ -310,7 +310,7 @@ menu "Kernel Features"
...
@@ -310,7 +310,7 @@ menu "Kernel Features"
config SMP
config SMP
bool "Symmetric Multi-Processing (EXPERIMENTAL)"
bool "Symmetric Multi-Processing (EXPERIMENTAL)"
depends on EXPERIMENTAL #&& n
depends on EXPERIMENTAL
&& BROKEN
#&& n
help
help
This enables support for systems with more than one CPU. If you have
This enables support for systems with more than one CPU. If you have
a system with only one CPU, like most personal computers, say N. If
a system with only one CPU, like most personal computers, say N. If
...
...
arch/arm/kernel/traps.c
浏览文件 @
617e44fd
...
@@ -617,7 +617,7 @@ baddataabort(int code, unsigned long instr, struct pt_regs *regs)
...
@@ -617,7 +617,7 @@ baddataabort(int code, unsigned long instr, struct pt_regs *regs)
notify_die
(
"unknown data abort code"
,
regs
,
&
info
,
instr
,
0
);
notify_die
(
"unknown data abort code"
,
regs
,
&
info
,
instr
,
0
);
}
}
vo
latile
void
__bug
(
const
char
*
file
,
int
line
,
void
*
data
)
vo
id
__attribute__
((
noreturn
))
__bug
(
const
char
*
file
,
int
line
,
void
*
data
)
{
{
printk
(
KERN_CRIT
"kernel BUG at %s:%d!"
,
file
,
line
);
printk
(
KERN_CRIT
"kernel BUG at %s:%d!"
,
file
,
line
);
if
(
data
)
if
(
data
)
...
...
arch/arm/nwfpe/fpopcode.h
浏览文件 @
617e44fd
...
@@ -370,20 +370,20 @@ TABLE 5
...
@@ -370,20 +370,20 @@ TABLE 5
#define getRoundingMode(opcode) ((opcode & MASK_ROUNDING_MODE) >> 5)
#define getRoundingMode(opcode) ((opcode & MASK_ROUNDING_MODE) >> 5)
#ifdef CONFIG_FPE_NWFPE_XP
#ifdef CONFIG_FPE_NWFPE_XP
static
inline
const
floatx80
getExtendedConstant
(
const
unsigned
int
nIndex
)
static
inline
__attribute_pure__
floatx80
getExtendedConstant
(
const
unsigned
int
nIndex
)
{
{
extern
const
floatx80
floatx80Constant
[];
extern
const
floatx80
floatx80Constant
[];
return
floatx80Constant
[
nIndex
];
return
floatx80Constant
[
nIndex
];
}
}
#endif
#endif
static
inline
const
float64
getDoubleConstant
(
const
unsigned
int
nIndex
)
static
inline
__attribute_pure__
float64
getDoubleConstant
(
const
unsigned
int
nIndex
)
{
{
extern
const
float64
float64Constant
[];
extern
const
float64
float64Constant
[];
return
float64Constant
[
nIndex
];
return
float64Constant
[
nIndex
];
}
}
static
inline
const
float32
getSingleConstant
(
const
unsigned
int
nIndex
)
static
inline
__attribute_pure__
float32
getSingleConstant
(
const
unsigned
int
nIndex
)
{
{
extern
const
float32
float32Constant
[];
extern
const
float32
float32Constant
[];
return
float32Constant
[
nIndex
];
return
float32Constant
[
nIndex
];
...
...
arch/i386/kernel/traps.c
浏览文件 @
617e44fd
...
@@ -803,15 +803,17 @@ void math_error(void __user *eip)
...
@@ -803,15 +803,17 @@ void math_error(void __user *eip)
*/
*/
cwd
=
get_fpu_cwd
(
task
);
cwd
=
get_fpu_cwd
(
task
);
swd
=
get_fpu_swd
(
task
);
swd
=
get_fpu_swd
(
task
);
switch
(
((
~
cwd
)
&
swd
&
0x3f
)
|
(
swd
&
0x240
)
)
{
switch
(
swd
&
~
cwd
&
0x3f
)
{
case
0x000
:
case
0x000
:
default:
default:
break
;
break
;
case
0x001
:
/* Invalid Op */
case
0x001
:
/* Invalid Op */
case
0x041
:
/* Stack Fault */
/*
case
0x241
:
/* Stack Fault | Direction */
* swd & 0x240 == 0x040: Stack Underflow
* swd & 0x240 == 0x240: Stack Overflow
* User must clear the SF bit (0x40) if set
*/
info
.
si_code
=
FPE_FLTINV
;
info
.
si_code
=
FPE_FLTINV
;
/* Should we clear the SF or let user space do it ???? */
break
;
break
;
case
0x002
:
/* Denormalize */
case
0x002
:
/* Denormalize */
case
0x010
:
/* Underflow */
case
0x010
:
/* Underflow */
...
...
arch/ia64/hp/sim/boot/boot_head.S
浏览文件 @
617e44fd
...
@@ -22,7 +22,7 @@ GLOBAL_ENTRY(_start)
...
@@ -22,7 +22,7 @@ GLOBAL_ENTRY(_start)
.
save
rp
,
r0
.
save
rp
,
r0
.
body
.
body
movl
gp
=
__gp
movl
gp
=
__gp
movl
sp
=
stack_mem
movl
sp
=
stack_mem
+
16384
-
16
bsw.
1
bsw.
1
br.call.sptk.many
rp
=
start_bootloader
br.call.sptk.many
rp
=
start_bootloader
END
(
_start
)
END
(
_start
)
...
...
arch/ia64/sn/kernel/io_init.c
浏览文件 @
617e44fd
...
@@ -323,7 +323,7 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
...
@@ -323,7 +323,7 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
struct
pci_controller
*
controller
;
struct
pci_controller
*
controller
;
struct
pcibus_bussoft
*
prom_bussoft_ptr
;
struct
pcibus_bussoft
*
prom_bussoft_ptr
;
struct
hubdev_info
*
hubdev_info
;
struct
hubdev_info
*
hubdev_info
;
void
*
provider_soft
;
void
*
provider_soft
=
NULL
;
struct
sn_pcibus_provider
*
provider
;
struct
sn_pcibus_provider
*
provider
;
status
=
sal_get_pcibus_info
((
u64
)
segment
,
(
u64
)
busnum
,
status
=
sal_get_pcibus_info
((
u64
)
segment
,
(
u64
)
busnum
,
...
@@ -339,7 +339,7 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
...
@@ -339,7 +339,7 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
if
(
bus
==
NULL
)
{
if
(
bus
==
NULL
)
{
bus
=
pci_scan_bus
(
busnum
,
&
pci_root_ops
,
controller
);
bus
=
pci_scan_bus
(
busnum
,
&
pci_root_ops
,
controller
);
if
(
bus
==
NULL
)
if
(
bus
==
NULL
)
return
;
/* error, or bus already scanned */
goto
error_return
;
/* error, or bus already scanned */
bus
->
sysdata
=
NULL
;
bus
->
sysdata
=
NULL
;
}
}
...
@@ -352,28 +352,30 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
...
@@ -352,28 +352,30 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
*/
*/
if
(
prom_bussoft_ptr
->
bs_asic_type
>=
PCIIO_ASIC_MAX_TYPES
)
if
(
prom_bussoft_ptr
->
bs_asic_type
>=
PCIIO_ASIC_MAX_TYPES
)
return
;
/* unsupported asic type */
goto
error_return
;
/* unsupported asic type */
if
(
prom_bussoft_ptr
->
bs_asic_type
==
PCIIO_ASIC_TYPE_PPB
)
if
(
prom_bussoft_ptr
->
bs_asic_type
==
PCIIO_ASIC_TYPE_PPB
)
goto
error_return
;
/* no further fixup necessary */
goto
error_return
;
/* no further fixup necessary */
provider
=
sn_pci_provider
[
prom_bussoft_ptr
->
bs_asic_type
];
provider
=
sn_pci_provider
[
prom_bussoft_ptr
->
bs_asic_type
];
if
(
provider
==
NULL
)
if
(
provider
==
NULL
)
return
;
/* no provider registerd for this asic */
goto
error_return
;
/* no provider registerd for this asic */
provider_soft
=
NULL
;
bus
->
sysdata
=
controller
;
if
(
provider
->
bus_fixup
)
if
(
provider
->
bus_fixup
)
provider_soft
=
(
*
provider
->
bus_fixup
)
(
prom_bussoft_ptr
,
controller
);
provider_soft
=
(
*
provider
->
bus_fixup
)
(
prom_bussoft_ptr
,
controller
);
if
(
provider_soft
==
NULL
)
if
(
provider_soft
==
NULL
)
{
return
;
/* fixup failed or not applicable */
/* fixup failed or not applicable */
bus
->
sysdata
=
NULL
;
goto
error_return
;
}
/*
/*
* Generic bus fixup goes here. Don't reference prom_bussoft_ptr
* Generic bus fixup goes here. Don't reference prom_bussoft_ptr
* after this point.
* after this point.
*/
*/
bus
->
sysdata
=
controller
;
PCI_CONTROLLER
(
bus
)
->
platform_data
=
provider_soft
;
PCI_CONTROLLER
(
bus
)
->
platform_data
=
provider_soft
;
nasid
=
NASID_GET
(
SN_PCIBUS_BUSSOFT
(
bus
)
->
bs_base
);
nasid
=
NASID_GET
(
SN_PCIBUS_BUSSOFT
(
bus
)
->
bs_base
);
cnode
=
nasid_to_cnodeid
(
nasid
);
cnode
=
nasid_to_cnodeid
(
nasid
);
...
...
arch/m32r/Kconfig
浏览文件 @
617e44fd
...
@@ -269,7 +269,7 @@ config NR_CPUS
...
@@ -269,7 +269,7 @@ config NR_CPUS
# Common NUMA Features
# Common NUMA Features
config NUMA
config NUMA
bool "Numa Memory Allocation Support"
bool "Numa Memory Allocation Support"
depends on SMP
depends on SMP
&& BROKEN
default n
default n
# turning this on wastes a bunch of space.
# turning this on wastes a bunch of space.
...
@@ -286,6 +286,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
...
@@ -286,6 +286,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
config PCI
config PCI
bool "PCI support"
bool "PCI support"
depends on BROKEN
default n
default n
help
help
Find out whether you have a PCI motherboard. PCI is the name of a
Find out whether you have a PCI motherboard. PCI is the name of a
...
...
arch/m32r/Kconfig.debug
浏览文件 @
617e44fd
...
@@ -20,7 +20,7 @@ config DEBUG_STACK_USAGE
...
@@ -20,7 +20,7 @@ config DEBUG_STACK_USAGE
config DEBUG_PAGEALLOC
config DEBUG_PAGEALLOC
bool "Page alloc debugging"
bool "Page alloc debugging"
depends on DEBUG_KERNEL
depends on DEBUG_KERNEL
&& BROKEN
help
help
Unmap pages from the kernel linear mapping after free_pages().
Unmap pages from the kernel linear mapping after free_pages().
This results in a large slowdown, but helps to find certain types
This results in a large slowdown, but helps to find certain types
...
...
arch/m32r/kernel/setup_m32700ut.c
浏览文件 @
617e44fd
...
@@ -30,9 +30,11 @@
...
@@ -30,9 +30,11 @@
typedef
struct
{
typedef
struct
{
unsigned
long
icucr
;
/* ICU Control Register */
unsigned
long
icucr
;
/* ICU Control Register */
}
icu_data_t
;
}
icu_data_t
;
static
icu_data_t
icu_data
[
M32700UT_NUM_CPU_IRQ
];
#else
icu_data_t
icu_data
[
M32700UT_NUM_CPU_IRQ
];
#endif
/* CONFIG_SMP */
#endif
/* CONFIG_SMP */
static
icu_data_t
icu_data
[
M32700UT_NUM_CPU_IRQ
];
static
void
disable_m32700ut_irq
(
unsigned
int
irq
)
static
void
disable_m32700ut_irq
(
unsigned
int
irq
)
{
{
...
...
arch/m32r/kernel/setup_opsput.c
浏览文件 @
617e44fd
...
@@ -31,9 +31,11 @@
...
@@ -31,9 +31,11 @@
typedef
struct
{
typedef
struct
{
unsigned
long
icucr
;
/* ICU Control Register */
unsigned
long
icucr
;
/* ICU Control Register */
}
icu_data_t
;
}
icu_data_t
;
static
icu_data_t
icu_data
[
OPSPUT_NUM_CPU_IRQ
];
#else
icu_data_t
icu_data
[
OPSPUT_NUM_CPU_IRQ
];
#endif
/* CONFIG_SMP */
#endif
/* CONFIG_SMP */
static
icu_data_t
icu_data
[
OPSPUT_NUM_CPU_IRQ
];
static
void
disable_opsput_irq
(
unsigned
int
irq
)
static
void
disable_opsput_irq
(
unsigned
int
irq
)
{
{
...
...
arch/m32r/kernel/smpboot.c
浏览文件 @
617e44fd
...
@@ -91,6 +91,7 @@ extern struct {
...
@@ -91,6 +91,7 @@ extern struct {
/* which physical physical ID maps to which logical CPU number */
/* which physical physical ID maps to which logical CPU number */
static
volatile
int
physid_2_cpu
[
NR_CPUS
];
static
volatile
int
physid_2_cpu
[
NR_CPUS
];
#define physid_to_cpu(physid) physid_2_cpu[physid]
/* which logical CPU number maps to which physical ID */
/* which logical CPU number maps to which physical ID */
volatile
int
cpu_2_physid
[
NR_CPUS
];
volatile
int
cpu_2_physid
[
NR_CPUS
];
...
...
arch/m32r/lib/csum_partial_copy.c
浏览文件 @
617e44fd
...
@@ -58,3 +58,4 @@ csum_partial_copy_from_user (const unsigned char __user *src,
...
@@ -58,3 +58,4 @@ csum_partial_copy_from_user (const unsigned char __user *src,
return
csum_partial
(
dst
,
len
-
missing
,
sum
);
return
csum_partial
(
dst
,
len
-
missing
,
sum
);
}
}
EXPORT_SYMBOL
(
csum_partial_copy_from_user
);
EXPORT_SYMBOL
(
csum_partial_copy_from_user
);
EXPORT_SYMBOL
(
csum_partial
);
arch/m32r/mm/discontig.c
浏览文件 @
617e44fd
...
@@ -12,12 +12,14 @@
...
@@ -12,12 +12,14 @@
#include <linux/mmzone.h>
#include <linux/mmzone.h>
#include <linux/initrd.h>
#include <linux/initrd.h>
#include <linux/nodemask.h>
#include <linux/nodemask.h>
#include <linux/module.h>
#include <asm/setup.h>
#include <asm/setup.h>
extern
char
_end
[];
extern
char
_end
[];
struct
pglist_data
*
node_data
[
MAX_NUMNODES
];
struct
pglist_data
*
node_data
[
MAX_NUMNODES
];
EXPORT_SYMBOL
(
node_data
);
static
bootmem_data_t
node_bdata
[
MAX_NUMNODES
]
__initdata
;
static
bootmem_data_t
node_bdata
[
MAX_NUMNODES
]
__initdata
;
pg_data_t
m32r_node_data
[
MAX_NUMNODES
];
pg_data_t
m32r_node_data
[
MAX_NUMNODES
];
...
...
arch/ppc/Kconfig
浏览文件 @
617e44fd
...
@@ -911,6 +911,7 @@ config PPCBUG_NVRAM
...
@@ -911,6 +911,7 @@ config PPCBUG_NVRAM
default y if PPC_PREP
default y if PPC_PREP
config SMP
config SMP
depends on PPC_STD_MMU
bool "Symmetric multi-processing support"
bool "Symmetric multi-processing support"
---help---
---help---
This enables support for systems with more than one CPU. If you have
This enables support for systems with more than one CPU. If you have
...
@@ -930,7 +931,7 @@ config SMP
...
@@ -930,7 +931,7 @@ config SMP
config IRQ_ALL_CPUS
config IRQ_ALL_CPUS
bool "Distribute interrupts on all CPUs by default"
bool "Distribute interrupts on all CPUs by default"
depends on SMP
depends on SMP
&& !MV64360
help
help
This option gives the kernel permission to distribute IRQs across
This option gives the kernel permission to distribute IRQs across
multiple CPUs. Saying N here will route all IRQs to the first
multiple CPUs. Saying N here will route all IRQs to the first
...
@@ -1121,7 +1122,9 @@ config PROC_HARDWARE
...
@@ -1121,7 +1122,9 @@ config PROC_HARDWARE
source "drivers/zorro/Kconfig"
source "drivers/zorro/Kconfig"
if !44x || BROKEN
source kernel/power/Kconfig
source kernel/power/Kconfig
endif
config SECCOMP
config SECCOMP
bool "Enable seccomp to safely compute untrusted bytecode"
bool "Enable seccomp to safely compute untrusted bytecode"
...
...
arch/ppc/platforms/4xx/Kconfig
浏览文件 @
617e44fd
...
@@ -3,6 +3,11 @@ config 4xx
...
@@ -3,6 +3,11 @@ config 4xx
depends on 40x || 44x
depends on 40x || 44x
default y
default y
config WANT_EARLY_SERIAL
bool
select SERIAL_8250
default n
menu "IBM 4xx options"
menu "IBM 4xx options"
depends on 4xx
depends on 4xx
...
@@ -18,6 +23,7 @@ config ASH
...
@@ -18,6 +23,7 @@ config ASH
config BUBINGA
config BUBINGA
bool "Bubinga"
bool "Bubinga"
select WANT_EARLY_SERIAL
help
help
This option enables support for the IBM 405EP evaluation board.
This option enables support for the IBM 405EP evaluation board.
...
@@ -70,21 +76,25 @@ choice
...
@@ -70,21 +76,25 @@ choice
config BAMBOO
config BAMBOO
bool "Bamboo"
bool "Bamboo"
select WANT_EARLY_SERIAL
help
help
This option enables support for the IBM PPC440EP evaluation board.
This option enables support for the IBM PPC440EP evaluation board.
config EBONY
config EBONY
bool "Ebony"
bool "Ebony"
select WANT_EARLY_SERIAL
help
help
This option enables support for the IBM PPC440GP evaluation board.
This option enables support for the IBM PPC440GP evaluation board.
config LUAN
config LUAN
bool "Luan"
bool "Luan"
select WANT_EARLY_SERIAL
help
help
This option enables support for the IBM PPC440SP evaluation board.
This option enables support for the IBM PPC440SP evaluation board.
config OCOTEA
config OCOTEA
bool "Ocotea"
bool "Ocotea"
select WANT_EARLY_SERIAL
help
help
This option enables support for the IBM PPC440GX evaluation board.
This option enables support for the IBM PPC440GX evaluation board.
...
@@ -230,10 +240,6 @@ config PPC_GEN550
...
@@ -230,10 +240,6 @@ config PPC_GEN550
depends on 4xx
depends on 4xx
default y
default y
config PM
bool "Power Management support (EXPERIMENTAL)"
depends on 4xx && EXPERIMENTAL
choice
choice
prompt "TTYS0 device and default console"
prompt "TTYS0 device and default console"
depends on 40x
depends on 40x
...
...
arch/s390/kernel/cpcmd.c
浏览文件 @
617e44fd
...
@@ -46,9 +46,9 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code)
...
@@ -46,9 +46,9 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code)
"lra 3,0(%4)
\n
"
"lra 3,0(%4)
\n
"
"lr 5,%5
\n
"
"lr 5,%5
\n
"
"diag 2,4,0x8
\n
"
"diag 2,4,0x8
\n
"
"brc 8,
.Litfits
\n
"
"brc 8,
1f
\n
"
"ar 5, %5
\n
"
"ar 5, %5
\n
"
"
.Litfits
:
\n
"
"
1
:
\n
"
"lr %0,4
\n
"
"lr %0,4
\n
"
"lr %1,5
\n
"
"lr %1,5
\n
"
:
"=d"
(
return_code
),
"=d"
(
return_len
)
:
"=d"
(
return_code
),
"=d"
(
return_len
)
...
@@ -64,9 +64,9 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code)
...
@@ -64,9 +64,9 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code)
"sam31
\n
"
"sam31
\n
"
"diag 2,4,0x8
\n
"
"diag 2,4,0x8
\n
"
"sam64
\n
"
"sam64
\n
"
"brc 8,
.Litfits
\n
"
"brc 8,
1f
\n
"
"agr 5, %5
\n
"
"agr 5, %5
\n
"
"
.Litfits
:
\n
"
"
1
:
\n
"
"lgr %0,4
\n
"
"lgr %0,4
\n
"
"lgr %1,5
\n
"
"lgr %1,5
\n
"
:
"=d"
(
return_code
),
"=d"
(
return_len
)
:
"=d"
(
return_code
),
"=d"
(
return_len
)
...
...
arch/x86_64/pci/k8-bus.c
浏览文件 @
617e44fd
...
@@ -47,13 +47,22 @@ fill_mp_bus_to_cpumask(void)
...
@@ -47,13 +47,22 @@ fill_mp_bus_to_cpumask(void)
* if there are no busses hanging off of the current
* if there are no busses hanging off of the current
* ldt link then both the secondary and subordinate
* ldt link then both the secondary and subordinate
* bus number fields are set to 0.
* bus number fields are set to 0.
*
* RED-PEN
* This is slightly broken because it assumes
* HT node IDs == Linux node ids, which is not always
* true. However it is probably mostly true.
*/
*/
if
(
!
(
SECONDARY_LDT_BUS_NUMBER
(
ldtbus
)
==
0
if
(
!
(
SECONDARY_LDT_BUS_NUMBER
(
ldtbus
)
==
0
&&
SUBORDINATE_LDT_BUS_NUMBER
(
ldtbus
)
==
0
))
{
&&
SUBORDINATE_LDT_BUS_NUMBER
(
ldtbus
)
==
0
))
{
for
(
j
=
SECONDARY_LDT_BUS_NUMBER
(
ldtbus
);
for
(
j
=
SECONDARY_LDT_BUS_NUMBER
(
ldtbus
);
j
<=
SUBORDINATE_LDT_BUS_NUMBER
(
ldtbus
);
j
<=
SUBORDINATE_LDT_BUS_NUMBER
(
ldtbus
);
j
++
)
j
++
)
{
pci_bus_to_node
[
j
]
=
NODE_ID
(
nid
);
int
node
=
NODE_ID
(
nid
);
if
(
!
node_online
(
node
))
node
=
0
;
pci_bus_to_node
[
j
]
=
node
;
}
}
}
}
}
}
}
...
...
drivers/char/Kconfig
浏览文件 @
617e44fd
...
@@ -80,7 +80,7 @@ config SERIAL_NONSTANDARD
...
@@ -80,7 +80,7 @@ config SERIAL_NONSTANDARD
config COMPUTONE
config COMPUTONE
tristate "Computone IntelliPort Plus serial support"
tristate "Computone IntelliPort Plus serial support"
depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP
depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP
&& (BROKEN || !SPARC32)
---help---
---help---
This driver supports the entire family of Intelliport II/Plus
This driver supports the entire family of Intelliport II/Plus
controllers with the exception of the MicroChannel controllers and
controllers with the exception of the MicroChannel controllers and
...
@@ -138,7 +138,7 @@ config CYZ_INTR
...
@@ -138,7 +138,7 @@ config CYZ_INTR
config DIGIEPCA
config DIGIEPCA
tristate "Digiboard Intelligent Async Support"
tristate "Digiboard Intelligent Async Support"
depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP
depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP
&& (!64BIT || BROKEN)
---help---
---help---
This is a driver for Digi International's Xx, Xeve, and Xem series
This is a driver for Digi International's Xx, Xeve, and Xem series
of cards which provide multiple serial ports. You would need
of cards which provide multiple serial ports. You would need
...
@@ -208,7 +208,7 @@ config SYNCLINK
...
@@ -208,7 +208,7 @@ config SYNCLINK
config SYNCLINKMP
config SYNCLINKMP
tristate "SyncLink Multiport support"
tristate "SyncLink Multiport support"
depends on SERIAL_NONSTANDARD
depends on SERIAL_NONSTANDARD
&& (BROKEN || !SPARC32)
help
help
Enable support for the SyncLink Multiport (2 or 4 ports)
Enable support for the SyncLink Multiport (2 or 4 ports)
serial adapter, running asynchronous and HDLC communications up
serial adapter, running asynchronous and HDLC communications up
...
@@ -735,7 +735,7 @@ config SGI_IP27_RTC
...
@@ -735,7 +735,7 @@ config SGI_IP27_RTC
config GEN_RTC
config GEN_RTC
tristate "Generic /dev/rtc emulation"
tristate "Generic /dev/rtc emulation"
depends on RTC!=y && !IA64 && !ARM && !PPC64
depends on RTC!=y && !IA64 && !ARM && !PPC64
&& !M32R && !SPARC32
---help---
---help---
If you say Y here and create a character special file /dev/rtc with
If you say Y here and create a character special file /dev/rtc with
major number 10 and minor number 135 using mknod ("man mknod"), you
major number 10 and minor number 135 using mknod ("man mknod"), you
...
...
drivers/infiniband/Kconfig
浏览文件 @
617e44fd
menu "InfiniBand support"
menu "InfiniBand support"
config INFINIBAND
config INFINIBAND
depends on PCI || BROKEN
tristate "InfiniBand support"
tristate "InfiniBand support"
---help---
---help---
Core support for InfiniBand (IB). Make sure to also select
Core support for InfiniBand (IB). Make sure to also select
...
...
drivers/isdn/hisax/Kconfig
浏览文件 @
617e44fd
...
@@ -134,6 +134,7 @@ config HISAX_AVM_A1
...
@@ -134,6 +134,7 @@ config HISAX_AVM_A1
config HISAX_FRITZPCI
config HISAX_FRITZPCI
bool "AVM PnP/PCI (Fritz!PnP/PCI)"
bool "AVM PnP/PCI (Fritz!PnP/PCI)"
depends on BROKEN || !PPC64
help
help
This enables HiSax support for the AVM "Fritz!PnP" and "Fritz!PCI".
This enables HiSax support for the AVM "Fritz!PnP" and "Fritz!PCI".
See <file:Documentation/isdn/README.HiSax> on how to configure it.
See <file:Documentation/isdn/README.HiSax> on how to configure it.
...
...
drivers/macintosh/Kconfig
浏览文件 @
617e44fd
...
@@ -103,7 +103,7 @@ config PMAC_MEDIABAY
...
@@ -103,7 +103,7 @@ config PMAC_MEDIABAY
# on non-powerbook machines (but only on PMU based ones AFAIK)
# on non-powerbook machines (but only on PMU based ones AFAIK)
config PMAC_BACKLIGHT
config PMAC_BACKLIGHT
bool "Backlight control for LCD screens"
bool "Backlight control for LCD screens"
depends on ADB_PMU
depends on ADB_PMU
&& (BROKEN || !PPC64)
help
help
Say Y here to build in code to manage the LCD backlight on a
Say Y here to build in code to manage the LCD backlight on a
Macintosh PowerBook. With this code, the backlight will be turned
Macintosh PowerBook. With this code, the backlight will be turned
...
...
drivers/md/md.c
浏览文件 @
617e44fd
...
@@ -256,8 +256,7 @@ static inline void mddev_unlock(mddev_t * mddev)
...
@@ -256,8 +256,7 @@ static inline void mddev_unlock(mddev_t * mddev)
{
{
up
(
&
mddev
->
reconfig_sem
);
up
(
&
mddev
->
reconfig_sem
);
if
(
mddev
->
thread
)
md_wakeup_thread
(
mddev
->
thread
);
md_wakeup_thread
(
mddev
->
thread
);
}
}
mdk_rdev_t
*
find_rdev_nr
(
mddev_t
*
mddev
,
int
nr
)
mdk_rdev_t
*
find_rdev_nr
(
mddev_t
*
mddev
,
int
nr
)
...
@@ -1714,6 +1713,7 @@ static int do_md_run(mddev_t * mddev)
...
@@ -1714,6 +1713,7 @@ static int do_md_run(mddev_t * mddev)
mddev
->
in_sync
=
1
;
mddev
->
in_sync
=
1
;
set_bit
(
MD_RECOVERY_NEEDED
,
&
mddev
->
recovery
);
set_bit
(
MD_RECOVERY_NEEDED
,
&
mddev
->
recovery
);
md_wakeup_thread
(
mddev
->
thread
);
if
(
mddev
->
sb_dirty
)
if
(
mddev
->
sb_dirty
)
md_update_sb
(
mddev
);
md_update_sb
(
mddev
);
...
@@ -2236,8 +2236,7 @@ static int add_new_disk(mddev_t * mddev, mdu_disk_info_t *info)
...
@@ -2236,8 +2236,7 @@ static int add_new_disk(mddev_t * mddev, mdu_disk_info_t *info)
export_rdev
(
rdev
);
export_rdev
(
rdev
);
set_bit
(
MD_RECOVERY_NEEDED
,
&
mddev
->
recovery
);
set_bit
(
MD_RECOVERY_NEEDED
,
&
mddev
->
recovery
);
if
(
mddev
->
thread
)
md_wakeup_thread
(
mddev
->
thread
);
md_wakeup_thread
(
mddev
->
thread
);
return
err
;
return
err
;
}
}
...
...
drivers/media/video/Kconfig
浏览文件 @
617e44fd
...
@@ -356,7 +356,7 @@ config VIDEO_M32R_AR
...
@@ -356,7 +356,7 @@ config VIDEO_M32R_AR
config VIDEO_M32R_AR_M64278
config VIDEO_M32R_AR_M64278
tristate "Use Colour AR module M64278(VGA)"
tristate "Use Colour AR module M64278(VGA)"
depends on VIDEO_M32R_AR
depends on VIDEO_M32R_AR
&& PLAT_M32700UT
---help---
---help---
Say Y here to use the Renesas M64278E-800 camera module,
Say Y here to use the Renesas M64278E-800 camera module,
which supports VGA(640x480 pixcels) size of images.
which supports VGA(640x480 pixcels) size of images.
...
...
drivers/net/Kconfig
浏览文件 @
617e44fd
...
@@ -1145,7 +1145,7 @@ config IBMVETH
...
@@ -1145,7 +1145,7 @@ config IBMVETH
be called ibmveth.
be called ibmveth.
config IBM_EMAC
config IBM_EMAC
tristate
"IBM PPC4xx EMAC driver support"
bool
"IBM PPC4xx EMAC driver support"
depends on 4xx
depends on 4xx
select CRC32
select CRC32
---help---
---help---
...
@@ -1154,7 +1154,7 @@ config IBM_EMAC
...
@@ -1154,7 +1154,7 @@ config IBM_EMAC
config IBM_EMAC_ERRMSG
config IBM_EMAC_ERRMSG
bool "Verbose error messages"
bool "Verbose error messages"
depends on IBM_EMAC
depends on IBM_EMAC
&& BROKEN
config IBM_EMAC_RXB
config IBM_EMAC_RXB
int "Number of receive buffers"
int "Number of receive buffers"
...
...
drivers/net/ibm_emac/ibm_emac_core.c
浏览文件 @
617e44fd
...
@@ -1712,11 +1712,10 @@ struct mal_commac_ops emac_commac_ops = {
...
@@ -1712,11 +1712,10 @@ struct mal_commac_ops emac_commac_ops = {
};
};
#ifdef CONFIG_NET_POLL_CONTROLLER
#ifdef CONFIG_NET_POLL_CONTROLLER
static
int
emac_netpoll
(
struct
net_device
*
ndev
)
static
void
emac_netpoll
(
struct
net_device
*
ndev
)
{
{
emac_rxeob_dev
((
void
*
)
ndev
,
0
);
emac_rxeob_dev
((
void
*
)
ndev
,
0
);
emac_txeob_dev
((
void
*
)
ndev
,
0
);
emac_txeob_dev
((
void
*
)
ndev
,
0
);
return
0
;
}
}
#endif
#endif
...
...
drivers/net/tokenring/Kconfig
浏览文件 @
617e44fd
...
@@ -84,7 +84,7 @@ config 3C359
...
@@ -84,7 +84,7 @@ config 3C359
config TMS380TR
config TMS380TR
tristate "Generic TMS380 Token Ring ISA/PCI adapter support"
tristate "Generic TMS380 Token Ring ISA/PCI adapter support"
depends on TR && (PCI || ISA)
depends on TR && (PCI || ISA
&& ISA_DMA_API
)
select FW_LOADER
select FW_LOADER
---help---
---help---
This driver provides generic support for token ring adapters
This driver provides generic support for token ring adapters
...
...
drivers/net/wireless/Kconfig
浏览文件 @
617e44fd
...
@@ -270,7 +270,7 @@ config PCMCIA_HERMES
...
@@ -270,7 +270,7 @@ config PCMCIA_HERMES
config AIRO_CS
config AIRO_CS
tristate "Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards"
tristate "Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards"
depends on NET_RADIO && PCMCIA
depends on NET_RADIO && PCMCIA
&& (BROKEN || !M32R)
---help---
---help---
This is the standard Linux driver to support Cisco/Aironet PCMCIA
This is the standard Linux driver to support Cisco/Aironet PCMCIA
802.11 wireless cards. This driver is the same as the Aironet
802.11 wireless cards. This driver is the same as the Aironet
...
...
drivers/parport/Kconfig
浏览文件 @
617e44fd
...
@@ -34,7 +34,7 @@ config PARPORT
...
@@ -34,7 +34,7 @@ config PARPORT
config PARPORT_PC
config PARPORT_PC
tristate "PC-style hardware"
tristate "PC-style hardware"
depends on PARPORT && (!SPARC64 || PCI) && !SPARC32
depends on PARPORT && (!SPARC64 || PCI) && !SPARC32
&& !M32R
---help---
---help---
You should say Y here if you have a PC-style parallel port. All
You should say Y here if you have a PC-style parallel port. All
IBM PC compatible computers and some Alphas have PC-style
IBM PC compatible computers and some Alphas have PC-style
...
...
drivers/pcmcia/pcmcia_resource.c
浏览文件 @
617e44fd
...
@@ -41,6 +41,7 @@ module_param(io_speed, int, 0444);
...
@@ -41,6 +41,7 @@ module_param(io_speed, int, 0444);
#ifdef CONFIG_PCMCIA_PROBE
#ifdef CONFIG_PCMCIA_PROBE
#include <asm/irq.h>
/* mask of IRQs already reserved by other cards, we should avoid using them */
/* mask of IRQs already reserved by other cards, we should avoid using them */
static
u8
pcmcia_used_irq
[
NR_IRQS
];
static
u8
pcmcia_used_irq
[
NR_IRQS
];
#endif
#endif
...
...
drivers/s390/cio/qdio.c
浏览文件 @
617e44fd
...
@@ -230,7 +230,7 @@ qdio_siga_input(struct qdio_q *q)
...
@@ -230,7 +230,7 @@ qdio_siga_input(struct qdio_q *q)
}
}
/* locked by the locks in qdio_activate and qdio_cleanup */
/* locked by the locks in qdio_activate and qdio_cleanup */
static
__u32
*
volatile
static
__u32
volatile
*
qdio_get_indicator
(
void
)
qdio_get_indicator
(
void
)
{
{
int
i
;
int
i
;
...
...
drivers/s390/crypto/z90crypt.h
浏览文件 @
617e44fd
...
@@ -35,15 +35,6 @@
...
@@ -35,15 +35,6 @@
#define z90crypt_RELEASE 3 // 2 = PCIXCC, 3 = rewrite for coding standards
#define z90crypt_RELEASE 3 // 2 = PCIXCC, 3 = rewrite for coding standards
#define z90crypt_VARIANT 2 // 2 = added PCIXCC MCL3 and CEX2C support
#define z90crypt_VARIANT 2 // 2 = added PCIXCC MCL3 and CEX2C support
/**
* If we are not using the sparse checker, __user has no use.
*/
#ifdef __CHECKER__
# define __user __attribute__((noderef, address_space(1)))
#else
# define __user
#endif
/**
/**
* struct ica_rsa_modexpo
* struct ica_rsa_modexpo
*
*
...
...
drivers/scsi/Kconfig
浏览文件 @
617e44fd
...
@@ -1696,7 +1696,7 @@ config TT_DMA_EMUL
...
@@ -1696,7 +1696,7 @@ config TT_DMA_EMUL
config MAC_SCSI
config MAC_SCSI
bool "Macintosh NCR5380 SCSI"
bool "Macintosh NCR5380 SCSI"
depends on MAC && SCSI
depends on MAC && SCSI
=y
help
help
This is the NCR 5380 SCSI controller included on most of the 68030
This is the NCR 5380 SCSI controller included on most of the 68030
based Macintoshes. If you have one of these say Y and read the
based Macintoshes. If you have one of these say Y and read the
...
@@ -1717,7 +1717,7 @@ config SCSI_MAC_ESP
...
@@ -1717,7 +1717,7 @@ config SCSI_MAC_ESP
config MVME147_SCSI
config MVME147_SCSI
bool "WD33C93 SCSI driver for MVME147"
bool "WD33C93 SCSI driver for MVME147"
depends on MVME147 && SCSI
depends on MVME147 && SCSI
=y
help
help
Support for the on-board SCSI controller on the Motorola MVME147
Support for the on-board SCSI controller on the Motorola MVME147
single-board computer.
single-board computer.
...
@@ -1758,7 +1758,7 @@ config SUN3_SCSI
...
@@ -1758,7 +1758,7 @@ config SUN3_SCSI
config
SUN3X_ESP
config
SUN3X_ESP
bool
"Sun3x ESP SCSI"
bool
"Sun3x ESP SCSI"
depends
on
SUN3X
&&
SCSI
depends
on
SUN3X
&&
SCSI
=
y
help
help
The
ESP
was
an
on
-
board
SCSI
controller
used
on
Sun
3
/
80
The
ESP
was
an
on
-
board
SCSI
controller
used
on
Sun
3
/
80
machines
.
Say
Y
here
to
compile
in
support
for
it
.
machines
.
Say
Y
here
to
compile
in
support
for
it
.
...
...
drivers/scsi/arm/Kconfig
浏览文件 @
617e44fd
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
#
#
config SCSI_ACORNSCSI_3
config SCSI_ACORNSCSI_3
tristate "Acorn SCSI card (aka30) support"
tristate "Acorn SCSI card (aka30) support"
depends on ARCH_ACORN && SCSI
depends on ARCH_ACORN && SCSI
&& BROKEN
help
help
This enables support for the Acorn SCSI card (aka30). If you have an
This enables support for the Acorn SCSI card (aka30). If you have an
Acorn system with one of these, say Y. If unsure, say N.
Acorn system with one of these, say Y. If unsure, say N.
...
...
drivers/serial/Kconfig
浏览文件 @
617e44fd
...
@@ -211,7 +211,7 @@ comment "Non-8250 serial port support"
...
@@ -211,7 +211,7 @@ comment "Non-8250 serial port support"
config SERIAL_AMBA_PL010
config SERIAL_AMBA_PL010
tristate "ARM AMBA PL010 serial port support"
tristate "ARM AMBA PL010 serial port support"
depends on ARM_AMBA
depends on ARM_AMBA
&& (BROKEN || !ARCH_VERSATILE)
select SERIAL_CORE
select SERIAL_CORE
help
help
This selects the ARM(R) AMBA(R) PrimeCell PL010 UART. If you have
This selects the ARM(R) AMBA(R) PrimeCell PL010 UART. If you have
...
@@ -819,7 +819,7 @@ config SERIAL_M32R_SIO_CONSOLE
...
@@ -819,7 +819,7 @@ config SERIAL_M32R_SIO_CONSOLE
config SERIAL_M32R_PLDSIO
config SERIAL_M32R_PLDSIO
bool "M32R SIO I/F on a PLD"
bool "M32R SIO I/F on a PLD"
depends on SERIAL_M32R_SIO=y
depends on SERIAL_M32R_SIO=y
&& (PLAT_OPSPUT || PALT_USRV || PLAT_M32700UT)
default n
default n
help
help
Say Y here if you want to use the M32R serial controller
Say Y here if you want to use the M32R serial controller
...
...
drivers/serial/m32r_sio.c
浏览文件 @
617e44fd
...
@@ -1123,7 +1123,7 @@ static int __init m32r_sio_console_setup(struct console *co, char *options)
...
@@ -1123,7 +1123,7 @@ static int __init m32r_sio_console_setup(struct console *co, char *options)
return
uart_set_options
(
port
,
co
,
baud
,
parity
,
bits
,
flow
);
return
uart_set_options
(
port
,
co
,
baud
,
parity
,
bits
,
flow
);
}
}
extern
struct
uart_driver
m32r_sio_reg
;
static
struct
uart_driver
m32r_sio_reg
;
static
struct
console
m32r_sio_console
=
{
static
struct
console
m32r_sio_console
=
{
.
name
=
"ttyS"
,
.
name
=
"ttyS"
,
.
write
=
m32r_sio_console_write
,
.
write
=
m32r_sio_console_write
,
...
...
drivers/usb/net/usbnet.c
浏览文件 @
617e44fd
...
@@ -1922,7 +1922,7 @@ static int genelink_rx_fixup (struct usbnet *dev, struct sk_buff *skb)
...
@@ -1922,7 +1922,7 @@ static int genelink_rx_fixup (struct usbnet *dev, struct sk_buff *skb)
// copy the packet data to the new skb
// copy the packet data to the new skb
memcpy
(
skb_put
(
gl_skb
,
size
),
packet
->
packet_data
,
size
);
memcpy
(
skb_put
(
gl_skb
,
size
),
packet
->
packet_data
,
size
);
skb_return
(
dev
,
skb
);
skb_return
(
dev
,
gl_
skb
);
}
}
// advance to the next packet
// advance to the next packet
...
...
drivers/usb/net/zd1201.c
浏览文件 @
617e44fd
...
@@ -346,8 +346,7 @@ static void zd1201_usbrx(struct urb *urb, struct pt_regs *regs)
...
@@ -346,8 +346,7 @@ static void zd1201_usbrx(struct urb *urb, struct pt_regs *regs)
if
(
datalen
<
14
)
if
(
datalen
<
14
)
goto
resubmit
;
goto
resubmit
;
if
((
seq
&
IEEE802_11_SCTL_FRAG
)
==
0
)
{
if
((
seq
&
IEEE802_11_SCTL_FRAG
)
==
0
)
{
frag
=
kmalloc
(
sizeof
(
struct
zd1201_frag
*
),
frag
=
kmalloc
(
sizeof
(
*
frag
),
GFP_ATOMIC
);
GFP_ATOMIC
);
if
(
!
frag
)
if
(
!
frag
)
goto
resubmit
;
goto
resubmit
;
skb
=
dev_alloc_skb
(
IEEE802_11_DATA_LEN
+
14
+
2
);
skb
=
dev_alloc_skb
(
IEEE802_11_DATA_LEN
+
14
+
2
);
...
...
drivers/video/console/Kconfig
浏览文件 @
617e44fd
...
@@ -6,7 +6,7 @@ menu "Console display driver support"
...
@@ -6,7 +6,7 @@ menu "Console display driver support"
config VGA_CONSOLE
config VGA_CONSOLE
bool "VGA text console" if EMBEDDED || !X86
bool "VGA text console" if EMBEDDED || !X86
depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC32 && !SPARC64 && !M68K && !PARISC
depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC32 && !SPARC64 && !M68K && !PARISC
&& !ARCH_VERSATILE
default y
default y
help
help
Saying Y here will allow you to use Linux in text mode through a
Saying Y here will allow you to use Linux in text mode through a
...
...
include/asm-alpha/system.h
浏览文件 @
617e44fd
...
@@ -443,22 +443,19 @@ __xchg_u64(volatile long *m, unsigned long val)
...
@@ -443,22 +443,19 @@ __xchg_u64(volatile long *m, unsigned long val)
if something tries to do an invalid xchg(). */
if something tries to do an invalid xchg(). */
extern
void
__xchg_called_with_bad_pointer
(
void
);
extern
void
__xchg_called_with_bad_pointer
(
void
);
static
inline
unsigned
long
#define __xchg(ptr, x, size) \
__xchg
(
volatile
void
*
ptr
,
unsigned
long
x
,
int
size
)
({ \
{
unsigned long __xchg__res; \
switch
(
size
)
{
volatile void *__xchg__ptr = (ptr); \
case
1
:
switch (size) { \
return
__xchg_u8
(
ptr
,
x
);
case 1: __xchg__res = __xchg_u8(__xchg__ptr, x); break; \
case
2
:
case 2: __xchg__res = __xchg_u16(__xchg__ptr, x); break; \
return
__xchg_u16
(
ptr
,
x
);
case 4: __xchg__res = __xchg_u32(__xchg__ptr, x); break; \
case
4
:
case 8: __xchg__res = __xchg_u64(__xchg__ptr, x); break; \
return
__xchg_u32
(
ptr
,
x
);
default: __xchg_called_with_bad_pointer(); __xchg__res = x; \
case
8
:
} \
return
__xchg_u64
(
ptr
,
x
);
__xchg__res; \
}
})
__xchg_called_with_bad_pointer
();
return
x
;
}
#define xchg(ptr,x) \
#define xchg(ptr,x) \
({ \
({ \
...
...
include/asm-arm/arch-ixp4xx/timex.h
浏览文件 @
617e44fd
...
@@ -7,7 +7,9 @@
...
@@ -7,7 +7,9 @@
/*
/*
* We use IXP425 General purpose timer for our timer needs, it runs at
* We use IXP425 General purpose timer for our timer needs, it runs at
* 66.66... MHz
* 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the
* timer register ignores the bottom 2 bits of the LATCH value.
*/
*/
#define CLOCK_TICK_RATE (66666666)
#define FREQ 66666666
#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
include/asm-arm/bug.h
浏览文件 @
617e44fd
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
#ifdef CONFIG_BUG
#ifdef CONFIG_BUG
#ifdef CONFIG_DEBUG_BUGVERBOSE
#ifdef CONFIG_DEBUG_BUGVERBOSE
extern
vo
latile
void
__bug
(
const
char
*
file
,
int
line
,
void
*
data
);
extern
vo
id
__bug
(
const
char
*
file
,
int
line
,
void
*
data
)
__attribute__
((
noreturn
)
);
/* give file/line information */
/* give file/line information */
#define BUG() __bug(__FILE__, __LINE__, NULL)
#define BUG() __bug(__FILE__, __LINE__, NULL)
...
...
include/asm-arm/cpu-multi32.h
浏览文件 @
617e44fd
...
@@ -31,7 +31,7 @@ extern struct processor {
...
@@ -31,7 +31,7 @@ extern struct processor {
/*
/*
* Special stuff for a reset
* Special stuff for a reset
*/
*/
vo
latile
void
(
*
reset
)(
unsigned
long
addr
);
vo
id
(
*
reset
)(
unsigned
long
addr
)
__attribute__
((
noreturn
)
);
/*
/*
* Idle the processor
* Idle the processor
*/
*/
...
...
include/asm-arm/cpu-single.h
浏览文件 @
617e44fd
...
@@ -41,4 +41,4 @@ extern int cpu_do_idle(void);
...
@@ -41,4 +41,4 @@ extern int cpu_do_idle(void);
extern
void
cpu_dcache_clean_area
(
void
*
,
int
);
extern
void
cpu_dcache_clean_area
(
void
*
,
int
);
extern
void
cpu_do_switch_mm
(
unsigned
long
pgd_phys
,
struct
mm_struct
*
mm
);
extern
void
cpu_do_switch_mm
(
unsigned
long
pgd_phys
,
struct
mm_struct
*
mm
);
extern
void
cpu_set_pte
(
pte_t
*
ptep
,
pte_t
pte
);
extern
void
cpu_set_pte
(
pte_t
*
ptep
,
pte_t
pte
);
extern
vo
latile
void
cpu_reset
(
unsigned
long
addr
);
extern
vo
id
cpu_reset
(
unsigned
long
addr
)
__attribute__
((
noreturn
)
);
include/asm-ia64/io.h
浏览文件 @
617e44fd
...
@@ -120,14 +120,6 @@ static inline void ___ia64_mmiowb(void)
...
@@ -120,14 +120,6 @@ static inline void ___ia64_mmiowb(void)
ia64_mfa
();
ia64_mfa
();
}
}
static
inline
const
unsigned
long
__ia64_get_io_port_base
(
void
)
{
extern
unsigned
long
ia64_iobase
;
return
ia64_iobase
;
}
static
inline
void
*
static
inline
void
*
__ia64_mk_io_addr
(
unsigned
long
port
)
__ia64_mk_io_addr
(
unsigned
long
port
)
{
{
...
...
include/asm-m32r/smp.h
浏览文件 @
617e44fd
...
@@ -61,9 +61,7 @@ extern physid_mask_t phys_cpu_present_map;
...
@@ -61,9 +61,7 @@ extern physid_mask_t phys_cpu_present_map;
* Some lowlevel functions might want to know about
* Some lowlevel functions might want to know about
* the real CPU ID <-> CPU # mapping.
* the real CPU ID <-> CPU # mapping.
*/
*/
extern
volatile
int
physid_2_cpu
[
NR_CPUS
];
extern
volatile
int
cpu_2_physid
[
NR_CPUS
];
extern
volatile
int
cpu_2_physid
[
NR_CPUS
];
#define physid_to_cpu(physid) physid_2_cpu[physid]
#define cpu_to_physid(cpu_id) cpu_2_physid[cpu_id]
#define cpu_to_physid(cpu_id) cpu_2_physid[cpu_id]
#define raw_smp_processor_id() (current_thread_info()->cpu)
#define raw_smp_processor_id() (current_thread_info()->cpu)
...
...
include/asm-ppc/time.h
浏览文件 @
617e44fd
...
@@ -58,7 +58,7 @@ static __inline__ void set_dec(unsigned int val)
...
@@ -58,7 +58,7 @@ static __inline__ void set_dec(unsigned int val)
/* Accessor functions for the timebase (RTC on 601) registers. */
/* Accessor functions for the timebase (RTC on 601) registers. */
/* If one day CONFIG_POWER is added just define __USE_RTC as 1 */
/* If one day CONFIG_POWER is added just define __USE_RTC as 1 */
#ifdef CONFIG_6xx
#ifdef CONFIG_6xx
extern
__inline__
int
const
__USE_RTC
(
void
)
{
extern
__inline__
int
__attribute_pure__
__USE_RTC
(
void
)
{
return
(
mfspr
(
SPRN_PVR
)
>>
16
)
==
1
;
return
(
mfspr
(
SPRN_PVR
)
>>
16
)
==
1
;
}
}
#else
#else
...
...
include/asm-s390/uaccess.h
浏览文件 @
617e44fd
...
@@ -149,11 +149,11 @@ struct exception_table_entry
...
@@ -149,11 +149,11 @@ struct exception_table_entry
})
})
#endif
#endif
#ifndef __CHECKER__
#define __put_user(x, ptr) \
#define __put_user(x, ptr) \
({ \
({ \
__typeof__(*(ptr)) __x = (x); \
__typeof__(*(ptr)) __x = (x); \
int __pu_err; \
int __pu_err; \
__chk_user_ptr(ptr); \
switch (sizeof (*(ptr))) { \
switch (sizeof (*(ptr))) { \
case 1: \
case 1: \
case 2: \
case 2: \
...
@@ -167,14 +167,6 @@ struct exception_table_entry
...
@@ -167,14 +167,6 @@ struct exception_table_entry
} \
} \
__pu_err; \
__pu_err; \
})
})
#else
#define __put_user(x, ptr) \
({ \
void __user *p; \
p = (ptr); \
0; \
})
#endif
#define put_user(x, ptr) \
#define put_user(x, ptr) \
({ \
({ \
...
@@ -213,11 +205,11 @@ extern int __put_user_bad(void) __attribute__((noreturn));
...
@@ -213,11 +205,11 @@ extern int __put_user_bad(void) __attribute__((noreturn));
})
})
#endif
#endif
#ifndef __CHECKER__
#define __get_user(x, ptr) \
#define __get_user(x, ptr) \
({ \
({ \
__typeof__(*(ptr)) __x; \
__typeof__(*(ptr)) __x; \
int __gu_err; \
int __gu_err; \
__chk_user_ptr(ptr); \
switch (sizeof(*(ptr))) { \
switch (sizeof(*(ptr))) { \
case 1: \
case 1: \
case 2: \
case 2: \
...
@@ -232,15 +224,6 @@ extern int __put_user_bad(void) __attribute__((noreturn));
...
@@ -232,15 +224,6 @@ extern int __put_user_bad(void) __attribute__((noreturn));
(x) = __x; \
(x) = __x; \
__gu_err; \
__gu_err; \
})
})
#else
#define __get_user(x, ptr) \
({ \
void __user *p; \
p = (ptr); \
0; \
})
#endif
#define get_user(x, ptr) \
#define get_user(x, ptr) \
({ \
({ \
...
...
include/net/ax25.h
浏览文件 @
617e44fd
...
@@ -139,11 +139,25 @@ enum {
...
@@ -139,11 +139,25 @@ enum {
#define AX25_DEF_DS_TIMEOUT (3 * 60 * HZ)
/* DAMA timeout 3 minutes */
#define AX25_DEF_DS_TIMEOUT (3 * 60 * HZ)
/* DAMA timeout 3 minutes */
typedef
struct
ax25_uid_assoc
{
typedef
struct
ax25_uid_assoc
{
struct
ax25_uid_assoc
*
next
;
struct
hlist_node
uid_node
;
atomic_t
refcount
;
uid_t
uid
;
uid_t
uid
;
ax25_address
call
;
ax25_address
call
;
}
ax25_uid_assoc
;
}
ax25_uid_assoc
;
#define ax25_uid_for_each(__ax25, node, list) \
hlist_for_each_entry(__ax25, node, list, uid_node)
#define ax25_uid_hold(ax25) \
atomic_inc(&((ax25)->refcount))
static
inline
void
ax25_uid_put
(
ax25_uid_assoc
*
assoc
)
{
if
(
atomic_dec_and_test
(
&
assoc
->
refcount
))
{
kfree
(
assoc
);
}
}
typedef
struct
{
typedef
struct
{
ax25_address
calls
[
AX25_MAX_DIGIS
];
ax25_address
calls
[
AX25_MAX_DIGIS
];
unsigned
char
repeated
[
AX25_MAX_DIGIS
];
unsigned
char
repeated
[
AX25_MAX_DIGIS
];
...
@@ -376,7 +390,7 @@ extern unsigned long ax25_display_timer(struct timer_list *);
...
@@ -376,7 +390,7 @@ extern unsigned long ax25_display_timer(struct timer_list *);
/* ax25_uid.c */
/* ax25_uid.c */
extern
int
ax25_uid_policy
;
extern
int
ax25_uid_policy
;
extern
ax25_
address
*
ax25_findbyuid
(
uid_t
);
extern
ax25_
uid_assoc
*
ax25_findbyuid
(
uid_t
);
extern
int
ax25_uid_ioctl
(
int
,
struct
sockaddr_ax25
*
);
extern
int
ax25_uid_ioctl
(
int
,
struct
sockaddr_ax25
*
);
extern
struct
file_operations
ax25_uid_fops
;
extern
struct
file_operations
ax25_uid_fops
;
extern
void
ax25_uid_free
(
void
);
extern
void
ax25_uid_free
(
void
);
...
...
include/net/sock.h
浏览文件 @
617e44fd
...
@@ -384,6 +384,11 @@ enum sock_flags {
...
@@ -384,6 +384,11 @@ enum sock_flags {
SOCK_QUEUE_SHRUNK
,
/* write queue has been shrunk recently */
SOCK_QUEUE_SHRUNK
,
/* write queue has been shrunk recently */
};
};
static
inline
void
sock_copy_flags
(
struct
sock
*
nsk
,
struct
sock
*
osk
)
{
nsk
->
sk_flags
=
osk
->
sk_flags
;
}
static
inline
void
sock_set_flag
(
struct
sock
*
sk
,
enum
sock_flags
flag
)
static
inline
void
sock_set_flag
(
struct
sock
*
sk
,
enum
sock_flags
flag
)
{
{
__set_bit
(
flag
,
&
sk
->
sk_flags
);
__set_bit
(
flag
,
&
sk
->
sk_flags
);
...
...
include/sound/core.h
浏览文件 @
617e44fd
...
@@ -360,11 +360,13 @@ int snd_device_free_all(snd_card_t *card, snd_device_cmd_t cmd);
...
@@ -360,11 +360,13 @@ int snd_device_free_all(snd_card_t *card, snd_device_cmd_t cmd);
/* isadma.c */
/* isadma.c */
#ifdef CONFIG_ISA_DMA_API
#define DMA_MODE_NO_ENABLE 0x0100
#define DMA_MODE_NO_ENABLE 0x0100
void
snd_dma_program
(
unsigned
long
dma
,
unsigned
long
addr
,
unsigned
int
size
,
unsigned
short
mode
);
void
snd_dma_program
(
unsigned
long
dma
,
unsigned
long
addr
,
unsigned
int
size
,
unsigned
short
mode
);
void
snd_dma_disable
(
unsigned
long
dma
);
void
snd_dma_disable
(
unsigned
long
dma
);
unsigned
int
snd_dma_pointer
(
unsigned
long
dma
,
unsigned
int
size
);
unsigned
int
snd_dma_pointer
(
unsigned
long
dma
,
unsigned
int
size
);
#endif
/* misc.c */
/* misc.c */
...
...
kernel/cpuset.c
浏览文件 @
617e44fd
...
@@ -635,6 +635,23 @@ static void update_cpu_domains(struct cpuset *cur)
...
@@ -635,6 +635,23 @@ static void update_cpu_domains(struct cpuset *cur)
if
(
par
==
NULL
||
cpus_empty
(
cur
->
cpus_allowed
))
if
(
par
==
NULL
||
cpus_empty
(
cur
->
cpus_allowed
))
return
;
return
;
/*
* Hack to avoid 2.6.13 partial node dynamic sched domain bug.
* Require the 'cpu_exclusive' cpuset to include all (or none)
* of the CPUs on each node, or return w/o changing sched domains.
* Remove this hack when dynamic sched domains fixed.
*/
{
int
i
,
j
;
for_each_cpu_mask
(
i
,
cur
->
cpus_allowed
)
{
for_each_cpu_mask
(
j
,
node_to_cpumask
(
cpu_to_node
(
i
)))
{
if
(
!
cpu_isset
(
j
,
cur
->
cpus_allowed
))
return
;
}
}
}
/*
/*
* Get all cpus from parent's cpus_allowed not part of exclusive
* Get all cpus from parent's cpus_allowed not part of exclusive
* children
* children
...
...
kernel/timer.c
浏览文件 @
617e44fd
...
@@ -1023,7 +1023,7 @@ asmlinkage long sys_getppid(void)
...
@@ -1023,7 +1023,7 @@ asmlinkage long sys_getppid(void)
parent
=
me
->
group_leader
->
real_parent
;
parent
=
me
->
group_leader
->
real_parent
;
for
(;;)
{
for
(;;)
{
pid
=
parent
->
tgid
;
pid
=
parent
->
tgid
;
#if
def CONFIG_SMP
#if
defined(CONFIG_SMP) || defined(CONFIG_PREEMPT)
{
{
struct
task_struct
*
old
=
parent
;
struct
task_struct
*
old
=
parent
;
...
...
lib/vsprintf.c
浏览文件 @
617e44fd
...
@@ -269,6 +269,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
...
@@ -269,6 +269,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
int
qualifier
;
/* 'h', 'l', or 'L' for integer fields */
int
qualifier
;
/* 'h', 'l', or 'L' for integer fields */
/* 'z' support added 23/7/1999 S.H. */
/* 'z' support added 23/7/1999 S.H. */
/* 'z' changed to 'Z' --davidm 1/25/99 */
/* 'z' changed to 'Z' --davidm 1/25/99 */
/* 't' added for ptrdiff_t */
/* Reject out-of-range values early */
/* Reject out-of-range values early */
if
(
unlikely
((
int
)
size
<
0
))
{
if
(
unlikely
((
int
)
size
<
0
))
{
...
@@ -339,7 +340,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
...
@@ -339,7 +340,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
/* get the conversion qualifier */
/* get the conversion qualifier */
qualifier
=
-
1
;
qualifier
=
-
1
;
if
(
*
fmt
==
'h'
||
*
fmt
==
'l'
||
*
fmt
==
'L'
||
if
(
*
fmt
==
'h'
||
*
fmt
==
'l'
||
*
fmt
==
'L'
||
*
fmt
==
'Z'
||
*
fmt
==
'z'
)
{
*
fmt
==
'Z'
||
*
fmt
==
'z'
||
*
fmt
==
't'
)
{
qualifier
=
*
fmt
;
qualifier
=
*
fmt
;
++
fmt
;
++
fmt
;
if
(
qualifier
==
'l'
&&
*
fmt
==
'l'
)
{
if
(
qualifier
==
'l'
&&
*
fmt
==
'l'
)
{
...
@@ -467,6 +468,8 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
...
@@ -467,6 +468,8 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
num
=
(
signed
long
)
num
;
num
=
(
signed
long
)
num
;
}
else
if
(
qualifier
==
'Z'
||
qualifier
==
'z'
)
{
}
else
if
(
qualifier
==
'Z'
||
qualifier
==
'z'
)
{
num
=
va_arg
(
args
,
size_t
);
num
=
va_arg
(
args
,
size_t
);
}
else
if
(
qualifier
==
't'
)
{
num
=
va_arg
(
args
,
ptrdiff_t
);
}
else
if
(
qualifier
==
'h'
)
{
}
else
if
(
qualifier
==
'h'
)
{
num
=
(
unsigned
short
)
va_arg
(
args
,
int
);
num
=
(
unsigned
short
)
va_arg
(
args
,
int
);
if
(
flags
&
SIGN
)
if
(
flags
&
SIGN
)
...
...
net/ax25/af_ax25.c
浏览文件 @
617e44fd
...
@@ -875,12 +875,7 @@ struct sock *ax25_make_new(struct sock *osk, struct ax25_dev *ax25_dev)
...
@@ -875,12 +875,7 @@ struct sock *ax25_make_new(struct sock *osk, struct ax25_dev *ax25_dev)
sk
->
sk_sndbuf
=
osk
->
sk_sndbuf
;
sk
->
sk_sndbuf
=
osk
->
sk_sndbuf
;
sk
->
sk_state
=
TCP_ESTABLISHED
;
sk
->
sk_state
=
TCP_ESTABLISHED
;
sk
->
sk_sleep
=
osk
->
sk_sleep
;
sk
->
sk_sleep
=
osk
->
sk_sleep
;
sock_copy_flags
(
sk
,
osk
);
if
(
sock_flag
(
osk
,
SOCK_DBG
))
sock_set_flag
(
sk
,
SOCK_DBG
);
if
(
sock_flag
(
osk
,
SOCK_ZAPPED
))
sock_set_flag
(
sk
,
SOCK_ZAPPED
);
oax25
=
ax25_sk
(
osk
);
oax25
=
ax25_sk
(
osk
);
...
@@ -1007,7 +1002,8 @@ static int ax25_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
...
@@ -1007,7 +1002,8 @@ static int ax25_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
struct
sock
*
sk
=
sock
->
sk
;
struct
sock
*
sk
=
sock
->
sk
;
struct
full_sockaddr_ax25
*
addr
=
(
struct
full_sockaddr_ax25
*
)
uaddr
;
struct
full_sockaddr_ax25
*
addr
=
(
struct
full_sockaddr_ax25
*
)
uaddr
;
ax25_dev
*
ax25_dev
=
NULL
;
ax25_dev
*
ax25_dev
=
NULL
;
ax25_address
*
call
;
ax25_uid_assoc
*
user
;
ax25_address
call
;
ax25_cb
*
ax25
;
ax25_cb
*
ax25
;
int
err
=
0
;
int
err
=
0
;
...
@@ -1026,9 +1022,15 @@ static int ax25_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
...
@@ -1026,9 +1022,15 @@ static int ax25_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
if
(
addr
->
fsa_ax25
.
sax25_family
!=
AF_AX25
)
if
(
addr
->
fsa_ax25
.
sax25_family
!=
AF_AX25
)
return
-
EINVAL
;
return
-
EINVAL
;
call
=
ax25_findbyuid
(
current
->
euid
);
user
=
ax25_findbyuid
(
current
->
euid
);
if
(
call
==
NULL
&&
ax25_uid_policy
&&
!
capable
(
CAP_NET_ADMIN
))
{
if
(
user
)
{
return
-
EACCES
;
call
=
user
->
call
;
ax25_uid_put
(
user
);
}
else
{
if
(
ax25_uid_policy
&&
!
capable
(
CAP_NET_ADMIN
))
return
-
EACCES
;
call
=
addr
->
fsa_ax25
.
sax25_call
;
}
}
lock_sock
(
sk
);
lock_sock
(
sk
);
...
@@ -1039,10 +1041,7 @@ static int ax25_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
...
@@ -1039,10 +1041,7 @@ static int ax25_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
goto
out
;
goto
out
;
}
}
if
(
call
==
NULL
)
ax25
->
source_addr
=
call
;
ax25
->
source_addr
=
addr
->
fsa_ax25
.
sax25_call
;
else
ax25
->
source_addr
=
*
call
;
/*
/*
* User already set interface with SO_BINDTODEVICE
* User already set interface with SO_BINDTODEVICE
...
...
net/ax25/ax25_route.c
浏览文件 @
617e44fd
...
@@ -422,8 +422,8 @@ static inline void ax25_adjust_path(ax25_address *addr, ax25_digi *digipeat)
...
@@ -422,8 +422,8 @@ static inline void ax25_adjust_path(ax25_address *addr, ax25_digi *digipeat)
*/
*/
int
ax25_rt_autobind
(
ax25_cb
*
ax25
,
ax25_address
*
addr
)
int
ax25_rt_autobind
(
ax25_cb
*
ax25
,
ax25_address
*
addr
)
{
{
ax25_uid_assoc
*
user
;
ax25_route
*
ax25_rt
;
ax25_route
*
ax25_rt
;
ax25_address
*
call
;
int
err
;
int
err
;
if
((
ax25_rt
=
ax25_get_route
(
addr
,
NULL
))
==
NULL
)
if
((
ax25_rt
=
ax25_get_route
(
addr
,
NULL
))
==
NULL
)
...
@@ -434,16 +434,18 @@ int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr)
...
@@ -434,16 +434,18 @@ int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr)
goto
put
;
goto
put
;
}
}
if
((
call
=
ax25_findbyuid
(
current
->
euid
))
==
NULL
)
{
user
=
ax25_findbyuid
(
current
->
euid
);
if
(
user
)
{
ax25
->
source_addr
=
user
->
call
;
ax25_uid_put
(
user
);
}
else
{
if
(
ax25_uid_policy
&&
!
capable
(
CAP_NET_BIND_SERVICE
))
{
if
(
ax25_uid_policy
&&
!
capable
(
CAP_NET_BIND_SERVICE
))
{
err
=
-
EPERM
;
err
=
-
EPERM
;
goto
put
;
goto
put
;
}
}
call
=
(
ax25_address
*
)
ax25
->
ax25_dev
->
dev
->
dev_addr
;
ax25
->
source_addr
=
*
(
ax25_address
*
)
ax25
->
ax25_dev
->
dev
->
dev_addr
;
}
}
ax25
->
source_addr
=
*
call
;
if
(
ax25_rt
->
digipeat
!=
NULL
)
{
if
(
ax25_rt
->
digipeat
!=
NULL
)
{
if
((
ax25
->
digipeat
=
kmalloc
(
sizeof
(
ax25_digi
),
GFP_ATOMIC
))
==
NULL
)
{
if
((
ax25
->
digipeat
=
kmalloc
(
sizeof
(
ax25_digi
),
GFP_ATOMIC
))
==
NULL
)
{
err
=
-
ENOMEM
;
err
=
-
ENOMEM
;
...
...
net/ax25/ax25_uid.c
浏览文件 @
617e44fd
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
#include <linux/fcntl.h>
#include <linux/fcntl.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <linux/list.h>
#include <linux/notifier.h>
#include <linux/notifier.h>
#include <linux/proc_fs.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/seq_file.h>
...
@@ -41,38 +42,41 @@
...
@@ -41,38 +42,41 @@
* Callsign/UID mapper. This is in kernel space for security on multi-amateur machines.
* Callsign/UID mapper. This is in kernel space for security on multi-amateur machines.
*/
*/
static
ax25_uid_assoc
*
ax25_uid_list
;
HLIST_HEAD
(
ax25_uid_list
)
;
static
DEFINE_RWLOCK
(
ax25_uid_lock
);
static
DEFINE_RWLOCK
(
ax25_uid_lock
);
int
ax25_uid_policy
=
0
;
int
ax25_uid_policy
=
0
;
ax25_
address
*
ax25_findbyuid
(
uid_t
uid
)
ax25_
uid_assoc
*
ax25_findbyuid
(
uid_t
uid
)
{
{
ax25_uid_assoc
*
ax25_uid
;
ax25_uid_assoc
*
ax25_uid
,
*
res
=
NULL
;
ax25_address
*
res
=
NULL
;
struct
hlist_node
*
node
;
read_lock
(
&
ax25_uid_lock
);
read_lock
(
&
ax25_uid_lock
);
for
(
ax25_uid
=
ax25_uid_list
;
ax25_uid
!=
NULL
;
ax25_uid
=
ax25_uid
->
nex
t
)
{
ax25_uid_for_each
(
ax25_uid
,
node
,
&
ax25_uid_lis
t
)
{
if
(
ax25_uid
->
uid
==
uid
)
{
if
(
ax25_uid
->
uid
==
uid
)
{
res
=
&
ax25_uid
->
call
;
ax25_uid_hold
(
ax25_uid
);
res
=
ax25_uid
;
break
;
break
;
}
}
}
}
read_unlock
(
&
ax25_uid_lock
);
read_unlock
(
&
ax25_uid_lock
);
return
NULL
;
return
res
;
}
}
int
ax25_uid_ioctl
(
int
cmd
,
struct
sockaddr_ax25
*
sax
)
int
ax25_uid_ioctl
(
int
cmd
,
struct
sockaddr_ax25
*
sax
)
{
{
ax25_uid_assoc
*
s
,
*
ax25_uid
;
ax25_uid_assoc
*
ax25_uid
;
struct
hlist_node
*
node
;
ax25_uid_assoc
*
user
;
unsigned
long
res
;
unsigned
long
res
;
switch
(
cmd
)
{
switch
(
cmd
)
{
case
SIOCAX25GETUID
:
case
SIOCAX25GETUID
:
res
=
-
ENOENT
;
res
=
-
ENOENT
;
read_lock
(
&
ax25_uid_lock
);
read_lock
(
&
ax25_uid_lock
);
for
(
ax25_uid
=
ax25_uid_list
;
ax25_uid
!=
NULL
;
ax25_uid
=
ax25_uid
->
nex
t
)
{
ax25_uid_for_each
(
ax25_uid
,
node
,
&
ax25_uid_lis
t
)
{
if
(
ax25cmp
(
&
sax
->
sax25_call
,
&
ax25_uid
->
call
)
==
0
)
{
if
(
ax25cmp
(
&
sax
->
sax25_call
,
&
ax25_uid
->
call
)
==
0
)
{
res
=
ax25_uid
->
uid
;
res
=
ax25_uid
->
uid
;
break
;
break
;
...
@@ -85,19 +89,22 @@ int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax)
...
@@ -85,19 +89,22 @@ int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax)
case
SIOCAX25ADDUID
:
case
SIOCAX25ADDUID
:
if
(
!
capable
(
CAP_NET_ADMIN
))
if
(
!
capable
(
CAP_NET_ADMIN
))
return
-
EPERM
;
return
-
EPERM
;
if
(
ax25_findbyuid
(
sax
->
sax25_uid
))
user
=
ax25_findbyuid
(
sax
->
sax25_uid
);
if
(
user
)
{
ax25_uid_put
(
user
);
return
-
EEXIST
;
return
-
EEXIST
;
}
if
(
sax
->
sax25_uid
==
0
)
if
(
sax
->
sax25_uid
==
0
)
return
-
EINVAL
;
return
-
EINVAL
;
if
((
ax25_uid
=
kmalloc
(
sizeof
(
*
ax25_uid
),
GFP_KERNEL
))
==
NULL
)
if
((
ax25_uid
=
kmalloc
(
sizeof
(
*
ax25_uid
),
GFP_KERNEL
))
==
NULL
)
return
-
ENOMEM
;
return
-
ENOMEM
;
atomic_set
(
&
ax25_uid
->
refcount
,
1
);
ax25_uid
->
uid
=
sax
->
sax25_uid
;
ax25_uid
->
uid
=
sax
->
sax25_uid
;
ax25_uid
->
call
=
sax
->
sax25_call
;
ax25_uid
->
call
=
sax
->
sax25_call
;
write_lock
(
&
ax25_uid_lock
);
write_lock
(
&
ax25_uid_lock
);
ax25_uid
->
next
=
ax25_uid_list
;
hlist_add_head
(
&
ax25_uid
->
uid_node
,
&
ax25_uid_list
);
ax25_uid_list
=
ax25_uid
;
write_unlock
(
&
ax25_uid_lock
);
write_unlock
(
&
ax25_uid_lock
);
return
0
;
return
0
;
...
@@ -106,34 +113,21 @@ int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax)
...
@@ -106,34 +113,21 @@ int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax)
if
(
!
capable
(
CAP_NET_ADMIN
))
if
(
!
capable
(
CAP_NET_ADMIN
))
return
-
EPERM
;
return
-
EPERM
;
ax25_uid
=
NULL
;
write_lock
(
&
ax25_uid_lock
);
write_lock
(
&
ax25_uid_lock
);
for
(
ax25_uid
=
ax25_uid_list
;
ax25_uid
!=
NULL
;
ax25_uid
=
ax25_uid
->
nex
t
)
{
ax25_uid_for_each
(
ax25_uid
,
node
,
&
ax25_uid_lis
t
)
{
if
(
ax25cmp
(
&
sax
->
sax25_call
,
&
ax25_uid
->
call
)
==
0
)
{
if
(
ax25cmp
(
&
sax
->
sax25_call
,
&
ax25_uid
->
call
)
==
0
)
break
;
break
;
}
}
}
if
(
ax25_uid
==
NULL
)
{
if
(
ax25_uid
==
NULL
)
{
write_unlock
(
&
ax25_uid_lock
);
write_unlock
(
&
ax25_uid_lock
);
return
-
ENOENT
;
return
-
ENOENT
;
}
}
if
((
s
=
ax25_uid_list
)
==
ax25_uid
)
{
hlist_del_init
(
&
ax25_uid
->
uid_node
);
ax25_uid_list
=
s
->
next
;
ax25_uid_put
(
ax25_uid
);
write_unlock
(
&
ax25_uid_lock
);
kfree
(
ax25_uid
);
return
0
;
}
while
(
s
!=
NULL
&&
s
->
next
!=
NULL
)
{
if
(
s
->
next
==
ax25_uid
)
{
s
->
next
=
ax25_uid
->
next
;
write_unlock
(
&
ax25_uid_lock
);
kfree
(
ax25_uid
);
return
0
;
}
s
=
s
->
next
;
}
write_unlock
(
&
ax25_uid_lock
);
write_unlock
(
&
ax25_uid_lock
);
return
-
ENOENT
;
return
0
;
default:
default:
return
-
EINVAL
;
return
-
EINVAL
;
...
@@ -147,13 +141,11 @@ int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax)
...
@@ -147,13 +141,11 @@ int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax)
static
void
*
ax25_uid_seq_start
(
struct
seq_file
*
seq
,
loff_t
*
pos
)
static
void
*
ax25_uid_seq_start
(
struct
seq_file
*
seq
,
loff_t
*
pos
)
{
{
struct
ax25_uid_assoc
*
pt
;
struct
ax25_uid_assoc
*
pt
;
int
i
=
1
;
struct
hlist_node
*
node
;
int
i
=
0
;
read_lock
(
&
ax25_uid_lock
);
read_lock
(
&
ax25_uid_lock
);
if
(
*
pos
==
0
)
ax25_uid_for_each
(
pt
,
node
,
&
ax25_uid_list
)
{
return
SEQ_START_TOKEN
;
for
(
pt
=
ax25_uid_list
;
pt
!=
NULL
;
pt
=
pt
->
next
)
{
if
(
i
==
*
pos
)
if
(
i
==
*
pos
)
return
pt
;
return
pt
;
++
i
;
++
i
;
...
@@ -164,8 +156,9 @@ static void *ax25_uid_seq_start(struct seq_file *seq, loff_t *pos)
...
@@ -164,8 +156,9 @@ static void *ax25_uid_seq_start(struct seq_file *seq, loff_t *pos)
static
void
*
ax25_uid_seq_next
(
struct
seq_file
*
seq
,
void
*
v
,
loff_t
*
pos
)
static
void
*
ax25_uid_seq_next
(
struct
seq_file
*
seq
,
void
*
v
,
loff_t
*
pos
)
{
{
++*
pos
;
++*
pos
;
return
(
v
==
SEQ_START_TOKEN
)
?
ax25_uid_list
:
((
struct
ax25_uid_assoc
*
)
v
)
->
next
;
return
hlist_entry
(((
ax25_uid_assoc
*
)
v
)
->
uid_node
.
next
,
ax25_uid_assoc
,
uid_node
);
}
}
static
void
ax25_uid_seq_stop
(
struct
seq_file
*
seq
,
void
*
v
)
static
void
ax25_uid_seq_stop
(
struct
seq_file
*
seq
,
void
*
v
)
...
@@ -179,7 +172,6 @@ static int ax25_uid_seq_show(struct seq_file *seq, void *v)
...
@@ -179,7 +172,6 @@ static int ax25_uid_seq_show(struct seq_file *seq, void *v)
seq_printf
(
seq
,
"Policy: %d
\n
"
,
ax25_uid_policy
);
seq_printf
(
seq
,
"Policy: %d
\n
"
,
ax25_uid_policy
);
else
{
else
{
struct
ax25_uid_assoc
*
pt
=
v
;
struct
ax25_uid_assoc
*
pt
=
v
;
seq_printf
(
seq
,
"%6d %s
\n
"
,
pt
->
uid
,
ax2asc
(
&
pt
->
call
));
seq_printf
(
seq
,
"%6d %s
\n
"
,
pt
->
uid
,
ax2asc
(
&
pt
->
call
));
}
}
...
@@ -213,16 +205,13 @@ struct file_operations ax25_uid_fops = {
...
@@ -213,16 +205,13 @@ struct file_operations ax25_uid_fops = {
*/
*/
void
__exit
ax25_uid_free
(
void
)
void
__exit
ax25_uid_free
(
void
)
{
{
ax25_uid_assoc
*
s
,
*
ax25_uid
;
ax25_uid_assoc
*
ax25_uid
;
struct
hlist_node
*
node
;
write_lock
(
&
ax25_uid_lock
);
write_lock
(
&
ax25_uid_lock
);
ax25_uid
=
ax25_uid_list
;
ax25_uid_for_each
(
ax25_uid
,
node
,
&
ax25_uid_list
)
{
while
(
ax25_uid
!=
NULL
)
{
hlist_del_init
(
&
ax25_uid
->
uid_node
);
s
=
ax25_uid
;
ax25_uid_put
(
ax25_uid
);
ax25_uid
=
ax25_uid
->
next
;
kfree
(
s
);
}
}
ax25_uid_list
=
NULL
;
write_unlock
(
&
ax25_uid_lock
);
write_unlock
(
&
ax25_uid_lock
);
}
}
net/ipv4/inetpeer.c
浏览文件 @
617e44fd
...
@@ -450,10 +450,13 @@ static void peer_check_expire(unsigned long dummy)
...
@@ -450,10 +450,13 @@ static void peer_check_expire(unsigned long dummy)
/* Trigger the timer after inet_peer_gc_mintime .. inet_peer_gc_maxtime
/* Trigger the timer after inet_peer_gc_mintime .. inet_peer_gc_maxtime
* interval depending on the total number of entries (more entries,
* interval depending on the total number of entries (more entries,
* less interval). */
* less interval). */
peer_periodic_timer
.
expires
=
jiffies
if
(
peer_total
>=
inet_peer_threshold
)
+
inet_peer_gc_maxtime
peer_periodic_timer
.
expires
=
jiffies
+
inet_peer_gc_mintime
;
-
(
inet_peer_gc_maxtime
-
inet_peer_gc_mintime
)
/
HZ
*
else
peer_total
/
inet_peer_threshold
*
HZ
;
peer_periodic_timer
.
expires
=
jiffies
+
inet_peer_gc_maxtime
-
(
inet_peer_gc_maxtime
-
inet_peer_gc_mintime
)
/
HZ
*
peer_total
/
inet_peer_threshold
*
HZ
;
add_timer
(
&
peer_periodic_timer
);
add_timer
(
&
peer_periodic_timer
);
}
}
...
...
net/ipv4/netfilter/ip_queue.c
浏览文件 @
617e44fd
...
@@ -214,6 +214,12 @@ ipq_build_packet_message(struct ipq_queue_entry *entry, int *errp)
...
@@ -214,6 +214,12 @@ ipq_build_packet_message(struct ipq_queue_entry *entry, int *errp)
break
;
break
;
case
IPQ_COPY_PACKET
:
case
IPQ_COPY_PACKET
:
if
(
entry
->
skb
->
ip_summed
==
CHECKSUM_HW
&&
(
*
errp
=
skb_checksum_help
(
entry
->
skb
,
entry
->
info
->
outdev
==
NULL
)))
{
read_unlock_bh
(
&
queue_lock
);
return
NULL
;
}
if
(
copy_range
==
0
||
copy_range
>
entry
->
skb
->
len
)
if
(
copy_range
==
0
||
copy_range
>
entry
->
skb
->
len
)
data_len
=
entry
->
skb
->
len
;
data_len
=
entry
->
skb
->
len
;
else
else
...
@@ -385,6 +391,7 @@ ipq_mangle_ipv4(ipq_verdict_msg_t *v, struct ipq_queue_entry *e)
...
@@ -385,6 +391,7 @@ ipq_mangle_ipv4(ipq_verdict_msg_t *v, struct ipq_queue_entry *e)
if
(
!
skb_ip_make_writable
(
&
e
->
skb
,
v
->
data_len
))
if
(
!
skb_ip_make_writable
(
&
e
->
skb
,
v
->
data_len
))
return
-
ENOMEM
;
return
-
ENOMEM
;
memcpy
(
e
->
skb
->
data
,
v
->
payload
,
v
->
data_len
);
memcpy
(
e
->
skb
->
data
,
v
->
payload
,
v
->
data_len
);
e
->
skb
->
ip_summed
=
CHECKSUM_NONE
;
e
->
skb
->
nfcache
|=
NFC_ALTERED
;
e
->
skb
->
nfcache
|=
NFC_ALTERED
;
/*
/*
...
...
net/ipv4/tcp.c
浏览文件 @
617e44fd
...
@@ -584,7 +584,7 @@ static inline void skb_entail(struct sock *sk, struct tcp_sock *tp,
...
@@ -584,7 +584,7 @@ static inline void skb_entail(struct sock *sk, struct tcp_sock *tp,
sk_charge_skb
(
sk
,
skb
);
sk_charge_skb
(
sk
,
skb
);
if
(
!
sk
->
sk_send_head
)
if
(
!
sk
->
sk_send_head
)
sk
->
sk_send_head
=
skb
;
sk
->
sk_send_head
=
skb
;
else
if
(
tp
->
nonagle
&
TCP_NAGLE_PUSH
)
if
(
tp
->
nonagle
&
TCP_NAGLE_PUSH
)
tp
->
nonagle
&=
~
TCP_NAGLE_PUSH
;
tp
->
nonagle
&=
~
TCP_NAGLE_PUSH
;
}
}
...
...
net/ipv4/tcp_ipv4.c
浏览文件 @
617e44fd
...
@@ -242,9 +242,14 @@ static int tcp_v4_get_port(struct sock *sk, unsigned short snum)
...
@@ -242,9 +242,14 @@ static int tcp_v4_get_port(struct sock *sk, unsigned short snum)
tcp_port_rover
=
rover
;
tcp_port_rover
=
rover
;
spin_unlock
(
&
tcp_portalloc_lock
);
spin_unlock
(
&
tcp_portalloc_lock
);
/* Exhausted local port range during search? */
/* Exhausted local port range during search? It is not
* possible for us to be holding one of the bind hash
* locks if this test triggers, because if 'remaining'
* drops to zero, we broke out of the do/while loop at
* the top level, not from the 'break;' statement.
*/
ret
=
1
;
ret
=
1
;
if
(
remaining
<=
0
)
if
(
unlikely
(
remaining
<=
0
)
)
goto
fail
;
goto
fail
;
/* OK, here is the one we will use. HEAD is
/* OK, here is the one we will use. HEAD is
...
...
net/ipv4/tcp_output.c
浏览文件 @
617e44fd
...
@@ -925,10 +925,6 @@ static int tcp_tso_should_defer(struct sock *sk, struct tcp_sock *tp, struct sk_
...
@@ -925,10 +925,6 @@ static int tcp_tso_should_defer(struct sock *sk, struct tcp_sock *tp, struct sk_
limit
=
min
(
send_win
,
cong_win
);
limit
=
min
(
send_win
,
cong_win
);
/* If sk_send_head can be sent fully now, just do it. */
if
(
skb
->
len
<=
limit
)
return
0
;
if
(
sysctl_tcp_tso_win_divisor
)
{
if
(
sysctl_tcp_tso_win_divisor
)
{
u32
chunk
=
min
(
tp
->
snd_wnd
,
tp
->
snd_cwnd
*
tp
->
mss_cache
);
u32
chunk
=
min
(
tp
->
snd_wnd
,
tp
->
snd_cwnd
*
tp
->
mss_cache
);
...
...
net/ipv6/netfilter/ip6_queue.c
浏览文件 @
617e44fd
...
@@ -211,6 +211,12 @@ ipq_build_packet_message(struct ipq_queue_entry *entry, int *errp)
...
@@ -211,6 +211,12 @@ ipq_build_packet_message(struct ipq_queue_entry *entry, int *errp)
break
;
break
;
case
IPQ_COPY_PACKET
:
case
IPQ_COPY_PACKET
:
if
(
entry
->
skb
->
ip_summed
==
CHECKSUM_HW
&&
(
*
errp
=
skb_checksum_help
(
entry
->
skb
,
entry
->
info
->
outdev
==
NULL
)))
{
read_unlock_bh
(
&
queue_lock
);
return
NULL
;
}
if
(
copy_range
==
0
||
copy_range
>
entry
->
skb
->
len
)
if
(
copy_range
==
0
||
copy_range
>
entry
->
skb
->
len
)
data_len
=
entry
->
skb
->
len
;
data_len
=
entry
->
skb
->
len
;
else
else
...
@@ -381,6 +387,7 @@ ipq_mangle_ipv6(ipq_verdict_msg_t *v, struct ipq_queue_entry *e)
...
@@ -381,6 +387,7 @@ ipq_mangle_ipv6(ipq_verdict_msg_t *v, struct ipq_queue_entry *e)
if
(
!
skb_ip_make_writable
(
&
e
->
skb
,
v
->
data_len
))
if
(
!
skb_ip_make_writable
(
&
e
->
skb
,
v
->
data_len
))
return
-
ENOMEM
;
return
-
ENOMEM
;
memcpy
(
e
->
skb
->
data
,
v
->
payload
,
v
->
data_len
);
memcpy
(
e
->
skb
->
data
,
v
->
payload
,
v
->
data_len
);
e
->
skb
->
ip_summed
=
CHECKSUM_NONE
;
e
->
skb
->
nfcache
|=
NFC_ALTERED
;
e
->
skb
->
nfcache
|=
NFC_ALTERED
;
/*
/*
...
...
net/ipv6/tcp_ipv6.c
浏览文件 @
617e44fd
...
@@ -158,9 +158,14 @@ static int tcp_v6_get_port(struct sock *sk, unsigned short snum)
...
@@ -158,9 +158,14 @@ static int tcp_v6_get_port(struct sock *sk, unsigned short snum)
tcp_port_rover
=
rover
;
tcp_port_rover
=
rover
;
spin_unlock
(
&
tcp_portalloc_lock
);
spin_unlock
(
&
tcp_portalloc_lock
);
/* Exhausted local port range during search? */
/* Exhausted local port range during search? It is not
* possible for us to be holding one of the bind hash
* locks if this test triggers, because if 'remaining'
* drops to zero, we broke out of the do/while loop at
* the top level, not from the 'break;' statement.
*/
ret
=
1
;
ret
=
1
;
if
(
remaining
<=
0
)
if
(
unlikely
(
remaining
<=
0
)
)
goto
fail
;
goto
fail
;
/* OK, here is the one we will use. */
/* OK, here is the one we will use. */
...
...
net/netrom/af_netrom.c
浏览文件 @
617e44fd
...
@@ -459,12 +459,7 @@ static struct sock *nr_make_new(struct sock *osk)
...
@@ -459,12 +459,7 @@ static struct sock *nr_make_new(struct sock *osk)
sk
->
sk_sndbuf
=
osk
->
sk_sndbuf
;
sk
->
sk_sndbuf
=
osk
->
sk_sndbuf
;
sk
->
sk_state
=
TCP_ESTABLISHED
;
sk
->
sk_state
=
TCP_ESTABLISHED
;
sk
->
sk_sleep
=
osk
->
sk_sleep
;
sk
->
sk_sleep
=
osk
->
sk_sleep
;
sock_copy_flags
(
sk
,
osk
);
if
(
sock_flag
(
osk
,
SOCK_ZAPPED
))
sock_set_flag
(
sk
,
SOCK_ZAPPED
);
if
(
sock_flag
(
osk
,
SOCK_DBG
))
sock_set_flag
(
sk
,
SOCK_DBG
);
skb_queue_head_init
(
&
nr
->
ack_queue
);
skb_queue_head_init
(
&
nr
->
ack_queue
);
skb_queue_head_init
(
&
nr
->
reseq_queue
);
skb_queue_head_init
(
&
nr
->
reseq_queue
);
...
@@ -541,7 +536,8 @@ static int nr_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
...
@@ -541,7 +536,8 @@ static int nr_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
struct
nr_sock
*
nr
=
nr_sk
(
sk
);
struct
nr_sock
*
nr
=
nr_sk
(
sk
);
struct
full_sockaddr_ax25
*
addr
=
(
struct
full_sockaddr_ax25
*
)
uaddr
;
struct
full_sockaddr_ax25
*
addr
=
(
struct
full_sockaddr_ax25
*
)
uaddr
;
struct
net_device
*
dev
;
struct
net_device
*
dev
;
ax25_address
*
user
,
*
source
;
ax25_uid_assoc
*
user
;
ax25_address
*
source
;
lock_sock
(
sk
);
lock_sock
(
sk
);
if
(
!
sock_flag
(
sk
,
SOCK_ZAPPED
))
{
if
(
!
sock_flag
(
sk
,
SOCK_ZAPPED
))
{
...
@@ -580,16 +576,19 @@ static int nr_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
...
@@ -580,16 +576,19 @@ static int nr_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
}
else
{
}
else
{
source
=
&
addr
->
fsa_ax25
.
sax25_call
;
source
=
&
addr
->
fsa_ax25
.
sax25_call
;
if
((
user
=
ax25_findbyuid
(
current
->
euid
))
==
NULL
)
{
user
=
ax25_findbyuid
(
current
->
euid
);
if
(
user
)
{
nr
->
user_addr
=
user
->
call
;
ax25_uid_put
(
user
);
}
else
{
if
(
ax25_uid_policy
&&
!
capable
(
CAP_NET_BIND_SERVICE
))
{
if
(
ax25_uid_policy
&&
!
capable
(
CAP_NET_BIND_SERVICE
))
{
release_sock
(
sk
);
release_sock
(
sk
);
dev_put
(
dev
);
dev_put
(
dev
);
return
-
EPERM
;
return
-
EPERM
;
}
}
user
=
source
;
nr
->
user_addr
=
*
source
;
}
}
nr
->
user_addr
=
*
user
;
nr
->
source_addr
=
*
source
;
nr
->
source_addr
=
*
source
;
}
}
...
@@ -609,7 +608,8 @@ static int nr_connect(struct socket *sock, struct sockaddr *uaddr,
...
@@ -609,7 +608,8 @@ static int nr_connect(struct socket *sock, struct sockaddr *uaddr,
struct
sock
*
sk
=
sock
->
sk
;
struct
sock
*
sk
=
sock
->
sk
;
struct
nr_sock
*
nr
=
nr_sk
(
sk
);
struct
nr_sock
*
nr
=
nr_sk
(
sk
);
struct
sockaddr_ax25
*
addr
=
(
struct
sockaddr_ax25
*
)
uaddr
;
struct
sockaddr_ax25
*
addr
=
(
struct
sockaddr_ax25
*
)
uaddr
;
ax25_address
*
user
,
*
source
=
NULL
;
ax25_address
*
source
=
NULL
;
ax25_uid_assoc
*
user
;
struct
net_device
*
dev
;
struct
net_device
*
dev
;
lock_sock
(
sk
);
lock_sock
(
sk
);
...
@@ -650,16 +650,19 @@ static int nr_connect(struct socket *sock, struct sockaddr *uaddr,
...
@@ -650,16 +650,19 @@ static int nr_connect(struct socket *sock, struct sockaddr *uaddr,
}
}
source
=
(
ax25_address
*
)
dev
->
dev_addr
;
source
=
(
ax25_address
*
)
dev
->
dev_addr
;
if
((
user
=
ax25_findbyuid
(
current
->
euid
))
==
NULL
)
{
user
=
ax25_findbyuid
(
current
->
euid
);
if
(
user
)
{
nr
->
user_addr
=
user
->
call
;
ax25_uid_put
(
user
);
}
else
{
if
(
ax25_uid_policy
&&
!
capable
(
CAP_NET_ADMIN
))
{
if
(
ax25_uid_policy
&&
!
capable
(
CAP_NET_ADMIN
))
{
dev_put
(
dev
);
dev_put
(
dev
);
release_sock
(
sk
);
release_sock
(
sk
);
return
-
EPERM
;
return
-
EPERM
;
}
}
user
=
source
;
nr
->
user_addr
=
*
source
;
}
}
nr
->
user_addr
=
*
user
;
nr
->
source_addr
=
*
source
;
nr
->
source_addr
=
*
source
;
nr
->
device
=
dev
;
nr
->
device
=
dev
;
...
...
net/rose/af_rose.c
浏览文件 @
617e44fd
...
@@ -556,12 +556,7 @@ static struct sock *rose_make_new(struct sock *osk)
...
@@ -556,12 +556,7 @@ static struct sock *rose_make_new(struct sock *osk)
sk
->
sk_sndbuf
=
osk
->
sk_sndbuf
;
sk
->
sk_sndbuf
=
osk
->
sk_sndbuf
;
sk
->
sk_state
=
TCP_ESTABLISHED
;
sk
->
sk_state
=
TCP_ESTABLISHED
;
sk
->
sk_sleep
=
osk
->
sk_sleep
;
sk
->
sk_sleep
=
osk
->
sk_sleep
;
sock_copy_flags
(
sk
,
osk
);
if
(
sock_flag
(
osk
,
SOCK_ZAPPED
))
sock_set_flag
(
sk
,
SOCK_ZAPPED
);
if
(
sock_flag
(
osk
,
SOCK_DBG
))
sock_set_flag
(
sk
,
SOCK_DBG
);
init_timer
(
&
rose
->
timer
);
init_timer
(
&
rose
->
timer
);
init_timer
(
&
rose
->
idletimer
);
init_timer
(
&
rose
->
idletimer
);
...
@@ -631,7 +626,8 @@ static int rose_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
...
@@ -631,7 +626,8 @@ static int rose_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
struct
rose_sock
*
rose
=
rose_sk
(
sk
);
struct
rose_sock
*
rose
=
rose_sk
(
sk
);
struct
sockaddr_rose
*
addr
=
(
struct
sockaddr_rose
*
)
uaddr
;
struct
sockaddr_rose
*
addr
=
(
struct
sockaddr_rose
*
)
uaddr
;
struct
net_device
*
dev
;
struct
net_device
*
dev
;
ax25_address
*
user
,
*
source
;
ax25_address
*
source
;
ax25_uid_assoc
*
user
;
int
n
;
int
n
;
if
(
!
sock_flag
(
sk
,
SOCK_ZAPPED
))
if
(
!
sock_flag
(
sk
,
SOCK_ZAPPED
))
...
@@ -656,14 +652,17 @@ static int rose_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
...
@@ -656,14 +652,17 @@ static int rose_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
source
=
&
addr
->
srose_call
;
source
=
&
addr
->
srose_call
;
if
((
user
=
ax25_findbyuid
(
current
->
euid
))
==
NULL
)
{
user
=
ax25_findbyuid
(
current
->
euid
);
if
(
user
)
{
rose
->
source_call
=
user
->
call
;
ax25_uid_put
(
user
);
}
else
{
if
(
ax25_uid_policy
&&
!
capable
(
CAP_NET_BIND_SERVICE
))
if
(
ax25_uid_policy
&&
!
capable
(
CAP_NET_BIND_SERVICE
))
return
-
EACCES
;
return
-
EACCES
;
user
=
source
;
rose
->
source_call
=
*
source
;
}
}
rose
->
source_addr
=
addr
->
srose_addr
;
rose
->
source_addr
=
addr
->
srose_addr
;
rose
->
source_call
=
*
user
;
rose
->
device
=
dev
;
rose
->
device
=
dev
;
rose
->
source_ndigis
=
addr
->
srose_ndigis
;
rose
->
source_ndigis
=
addr
->
srose_ndigis
;
...
@@ -690,8 +689,8 @@ static int rose_connect(struct socket *sock, struct sockaddr *uaddr, int addr_le
...
@@ -690,8 +689,8 @@ static int rose_connect(struct socket *sock, struct sockaddr *uaddr, int addr_le
struct
rose_sock
*
rose
=
rose_sk
(
sk
);
struct
rose_sock
*
rose
=
rose_sk
(
sk
);
struct
sockaddr_rose
*
addr
=
(
struct
sockaddr_rose
*
)
uaddr
;
struct
sockaddr_rose
*
addr
=
(
struct
sockaddr_rose
*
)
uaddr
;
unsigned
char
cause
,
diagnostic
;
unsigned
char
cause
,
diagnostic
;
ax25_address
*
user
;
struct
net_device
*
dev
;
struct
net_device
*
dev
;
ax25_uid_assoc
*
user
;
int
n
;
int
n
;
if
(
sk
->
sk_state
==
TCP_ESTABLISHED
&&
sock
->
state
==
SS_CONNECTING
)
{
if
(
sk
->
sk_state
==
TCP_ESTABLISHED
&&
sock
->
state
==
SS_CONNECTING
)
{
...
@@ -741,12 +740,14 @@ static int rose_connect(struct socket *sock, struct sockaddr *uaddr, int addr_le
...
@@ -741,12 +740,14 @@ static int rose_connect(struct socket *sock, struct sockaddr *uaddr, int addr_le
if
((
dev
=
rose_dev_first
())
==
NULL
)
if
((
dev
=
rose_dev_first
())
==
NULL
)
return
-
ENETUNREACH
;
return
-
ENETUNREACH
;
if
((
user
=
ax25_findbyuid
(
current
->
euid
))
==
NULL
)
user
=
ax25_findbyuid
(
current
->
euid
);
if
(
!
user
)
return
-
EINVAL
;
return
-
EINVAL
;
memcpy
(
&
rose
->
source_addr
,
dev
->
dev_addr
,
ROSE_ADDR_LEN
);
memcpy
(
&
rose
->
source_addr
,
dev
->
dev_addr
,
ROSE_ADDR_LEN
);
rose
->
source_call
=
*
user
;
rose
->
source_call
=
user
->
call
;
rose
->
device
=
dev
;
rose
->
device
=
dev
;
ax25_uid_put
(
user
);
rose_insert_socket
(
sk
);
/* Finish the bind */
rose_insert_socket
(
sk
);
/* Finish the bind */
}
}
...
...
net/rose/rose_route.c
浏览文件 @
617e44fd
...
@@ -994,8 +994,10 @@ int rose_route_frame(struct sk_buff *skb, ax25_cb *ax25)
...
@@ -994,8 +994,10 @@ int rose_route_frame(struct sk_buff *skb, ax25_cb *ax25)
* 1. The frame isn't for us,
* 1. The frame isn't for us,
* 2. It isn't "owned" by any existing route.
* 2. It isn't "owned" by any existing route.
*/
*/
if
(
frametype
!=
ROSE_CALL_REQUEST
)
/* XXX */
if
(
frametype
!=
ROSE_CALL_REQUEST
)
{
/* XXX */
return
0
;
res
=
0
;
goto
out
;
}
len
=
(((
skb
->
data
[
3
]
>>
4
)
&
0x0F
)
+
1
)
/
2
;
len
=
(((
skb
->
data
[
3
]
>>
4
)
&
0x0F
)
+
1
)
/
2
;
len
+=
(((
skb
->
data
[
3
]
>>
0
)
&
0x0F
)
+
1
)
/
2
;
len
+=
(((
skb
->
data
[
3
]
>>
0
)
&
0x0F
)
+
1
)
/
2
;
...
...
net/sched/sch_generic.c
浏览文件 @
617e44fd
...
@@ -438,6 +438,7 @@ struct Qdisc * qdisc_create_dflt(struct net_device *dev, struct Qdisc_ops *ops)
...
@@ -438,6 +438,7 @@ struct Qdisc * qdisc_create_dflt(struct net_device *dev, struct Qdisc_ops *ops)
if
(
!
ops
->
init
||
ops
->
init
(
sch
,
NULL
)
==
0
)
if
(
!
ops
->
init
||
ops
->
init
(
sch
,
NULL
)
==
0
)
return
sch
;
return
sch
;
qdisc_destroy
(
sch
);
errout:
errout:
return
NULL
;
return
NULL
;
}
}
...
...
net/sctp/proc.c
浏览文件 @
617e44fd
...
@@ -57,6 +57,7 @@ static struct snmp_mib sctp_snmp_list[] = {
...
@@ -57,6 +57,7 @@ static struct snmp_mib sctp_snmp_list[] = {
SNMP_MIB_ITEM
(
"SctpReasmUsrMsgs"
,
SCTP_MIB_REASMUSRMSGS
),
SNMP_MIB_ITEM
(
"SctpReasmUsrMsgs"
,
SCTP_MIB_REASMUSRMSGS
),
SNMP_MIB_ITEM
(
"SctpOutSCTPPacks"
,
SCTP_MIB_OUTSCTPPACKS
),
SNMP_MIB_ITEM
(
"SctpOutSCTPPacks"
,
SCTP_MIB_OUTSCTPPACKS
),
SNMP_MIB_ITEM
(
"SctpInSCTPPacks"
,
SCTP_MIB_INSCTPPACKS
),
SNMP_MIB_ITEM
(
"SctpInSCTPPacks"
,
SCTP_MIB_INSCTPPACKS
),
SNMP_MIB_SENTINEL
};
};
/* Return the current value of a particular entry in the mib by adding its
/* Return the current value of a particular entry in the mib by adding its
...
...
net/sunrpc/auth_gss/gss_krb5_crypto.c
浏览文件 @
617e44fd
...
@@ -185,9 +185,7 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
...
@@ -185,9 +185,7 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
sg
->
page
=
body
->
pages
[
i
];
sg
->
page
=
body
->
pages
[
i
];
sg
->
offset
=
offset
;
sg
->
offset
=
offset
;
sg
->
length
=
thislen
;
sg
->
length
=
thislen
;
kmap
(
sg
->
page
);
/* XXX kmap_atomic? */
crypto_digest_update
(
tfm
,
sg
,
1
);
crypto_digest_update
(
tfm
,
sg
,
1
);
kunmap
(
sg
->
page
);
len
-=
thislen
;
len
-=
thislen
;
i
++
;
i
++
;
offset
=
0
;
offset
=
0
;
...
...
sound/Kconfig
浏览文件 @
617e44fd
...
@@ -77,7 +77,7 @@ source "sound/parisc/Kconfig"
...
@@ -77,7 +77,7 @@ source "sound/parisc/Kconfig"
endmenu
endmenu
menu "Open Sound System"
menu "Open Sound System"
depends on SOUND!=n
&& (BROKEN || (!SPARC32 && !SPARC64))
depends on SOUND!=n
config SOUND_PRIME
config SOUND_PRIME
tristate "Open Sound System (DEPRECATED)"
tristate "Open Sound System (DEPRECATED)"
...
...
sound/core/Makefile
浏览文件 @
617e44fd
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
snd-objs
:=
sound.o init.o memory.o info.o control.o misc.o
\
snd-objs
:=
sound.o init.o memory.o info.o control.o misc.o
\
device.o wrappers.o
device.o wrappers.o
ifeq
($(CONFIG_ISA),y)
ifeq
($(CONFIG_ISA
_DMA_API
),y)
snd-objs
+=
isadma.o
snd-objs
+=
isadma.o
endif
endif
ifeq
($(CONFIG_SND_OSSEMUL),y)
ifeq
($(CONFIG_SND_OSSEMUL),y)
...
...
sound/core/sound.c
浏览文件 @
617e44fd
...
@@ -432,7 +432,7 @@ EXPORT_SYMBOL(snd_device_new);
...
@@ -432,7 +432,7 @@ EXPORT_SYMBOL(snd_device_new);
EXPORT_SYMBOL
(
snd_device_register
);
EXPORT_SYMBOL
(
snd_device_register
);
EXPORT_SYMBOL
(
snd_device_free
);
EXPORT_SYMBOL
(
snd_device_free
);
/* isadma.c */
/* isadma.c */
#ifdef CONFIG_ISA
#ifdef CONFIG_ISA
_DMA_API
EXPORT_SYMBOL
(
snd_dma_program
);
EXPORT_SYMBOL
(
snd_dma_program
);
EXPORT_SYMBOL
(
snd_dma_disable
);
EXPORT_SYMBOL
(
snd_dma_disable
);
EXPORT_SYMBOL
(
snd_dma_pointer
);
EXPORT_SYMBOL
(
snd_dma_pointer
);
...
...
sound/isa/Kconfig
浏览文件 @
617e44fd
# ALSA ISA drivers
# ALSA ISA drivers
menu "ISA devices"
menu "ISA devices"
depends on SND!=n && ISA
depends on SND!=n && ISA
&& ISA_DMA_API
config SND_AD1848_LIB
config SND_AD1848_LIB
tristate
tristate
...
...
sound/oss/Kconfig
浏览文件 @
617e44fd
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
# Prompt user for primary drivers.
# Prompt user for primary drivers.
config SOUND_BT878
config SOUND_BT878
tristate "BT878 audio dma"
tristate "BT878 audio dma"
depends on SOUND_PRIME
depends on SOUND_PRIME
&& PCI
---help---
---help---
Audio DMA support for bt878 based grabber boards. As you might have
Audio DMA support for bt878 based grabber boards. As you might have
already noticed, bt878 is listed with two functions in /proc/pci.
already noticed, bt878 is listed with two functions in /proc/pci.
...
@@ -80,14 +80,14 @@ config SOUND_EMU10K1
...
@@ -80,14 +80,14 @@ config SOUND_EMU10K1
config MIDI_EMU10K1
config MIDI_EMU10K1
bool "Creative SBLive! MIDI (EXPERIMENTAL)"
bool "Creative SBLive! MIDI (EXPERIMENTAL)"
depends on SOUND_EMU10K1 && EXPERIMENTAL
depends on SOUND_EMU10K1 && EXPERIMENTAL
&& ISA_DMA_API
help
help
Say Y if you want to be able to use the OSS /dev/sequencer
Say Y if you want to be able to use the OSS /dev/sequencer
interface. This code is still experimental.
interface. This code is still experimental.
config SOUND_FUSION
config SOUND_FUSION
tristate "Crystal SoundFusion (CS4280/461x)"
tristate "Crystal SoundFusion (CS4280/461x)"
depends on SOUND_PRIME
depends on SOUND_PRIME
&& PCI
help
help
This module drives the Crystal SoundFusion devices (CS4280/46xx
This module drives the Crystal SoundFusion devices (CS4280/46xx
series) when wired as native sound drivers with AC97 codecs. If
series) when wired as native sound drivers with AC97 codecs. If
...
@@ -95,7 +95,7 @@ config SOUND_FUSION
...
@@ -95,7 +95,7 @@ config SOUND_FUSION
config SOUND_CS4281
config SOUND_CS4281
tristate "Crystal Sound CS4281"
tristate "Crystal Sound CS4281"
depends on SOUND_PRIME
depends on SOUND_PRIME
&& PCI
help
help
Picture and feature list at
Picture and feature list at
<http://www.pcbroker.com/crystal4281.html>.
<http://www.pcbroker.com/crystal4281.html>.
...
@@ -179,7 +179,7 @@ config SOUND_HARMONY
...
@@ -179,7 +179,7 @@ config SOUND_HARMONY
config SOUND_SONICVIBES
config SOUND_SONICVIBES
tristate "S3 SonicVibes"
tristate "S3 SonicVibes"
depends on SOUND_PRIME
depends on SOUND_PRIME
&& PCI
help
help
Say Y or M if you have a PCI sound card utilizing the S3
Say Y or M if you have a PCI sound card utilizing the S3
SonicVibes chipset. To find out if your sound card uses a
SonicVibes chipset. To find out if your sound card uses a
...
@@ -226,7 +226,7 @@ config SOUND_AU1550_AC97
...
@@ -226,7 +226,7 @@ config SOUND_AU1550_AC97
config SOUND_TRIDENT
config SOUND_TRIDENT
tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core"
tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core"
depends on SOUND_PRIME
depends on SOUND_PRIME
&& PCI
---help---
---help---
Say Y or M if you have a PCI sound card utilizing the Trident
Say Y or M if you have a PCI sound card utilizing the Trident
4DWave-DX/NX chipset or your mother board chipset has SiS 7018
4DWave-DX/NX chipset or your mother board chipset has SiS 7018
...
@@ -503,7 +503,7 @@ config SOUND_VIA82CXXX
...
@@ -503,7 +503,7 @@ config SOUND_VIA82CXXX
config MIDI_VIA82CXXX
config MIDI_VIA82CXXX
bool "VIA 82C686 MIDI"
bool "VIA 82C686 MIDI"
depends on SOUND_VIA82CXXX
depends on SOUND_VIA82CXXX
&& ISA_DMA_API
help
help
Answer Y to use the MIDI interface of the Via686. You may need to
Answer Y to use the MIDI interface of the Via686. You may need to
enable this in the BIOS before it will work. This is for connection
enable this in the BIOS before it will work. This is for connection
...
@@ -512,7 +512,7 @@ config MIDI_VIA82CXXX
...
@@ -512,7 +512,7 @@ config MIDI_VIA82CXXX
config SOUND_OSS
config SOUND_OSS
tristate "OSS sound modules"
tristate "OSS sound modules"
depends on SOUND_PRIME
depends on SOUND_PRIME
&& ISA_DMA_API
help
help
OSS is the Open Sound System suite of sound card drivers. They make
OSS is the Open Sound System suite of sound card drivers. They make
sound programming easier since they provide a common API. Say Y or
sound programming easier since they provide a common API. Say Y or
...
...
sound/oss/Makefile
浏览文件 @
617e44fd
...
@@ -80,7 +80,7 @@ obj-$(CONFIG_SOUND_ALI5455) += ali5455.o ac97_codec.o
...
@@ -80,7 +80,7 @@ obj-$(CONFIG_SOUND_ALI5455) += ali5455.o ac97_codec.o
obj-$(CONFIG_SOUND_IT8172)
+=
ite8172.o ac97_codec.o
obj-$(CONFIG_SOUND_IT8172)
+=
ite8172.o ac97_codec.o
obj-$(CONFIG_SOUND_FORTE)
+=
forte.o ac97_codec.o
obj-$(CONFIG_SOUND_FORTE)
+=
forte.o ac97_codec.o
obj-$(CONFIG_SOUND_AD1980)
+=
ac97_plugin_ad1980.o
obj-$(CONFIG_SOUND_AD1980)
+=
ac97_plugin_ad1980.o
ac97_codec.o
obj-$(CONFIG_SOUND_WM97XX)
+=
ac97_plugin_wm97xx.o
obj-$(CONFIG_SOUND_WM97XX)
+=
ac97_plugin_wm97xx.o
ifeq
($(CONFIG_MIDI_EMU10K1),y)
ifeq
($(CONFIG_MIDI_EMU10K1),y)
...
...
sound/oss/i810_audio.c
浏览文件 @
617e44fd
...
@@ -3430,9 +3430,9 @@ static int __devinit i810_probe(struct pci_dev *pci_dev, const struct pci_device
...
@@ -3430,9 +3430,9 @@ static int __devinit i810_probe(struct pci_dev *pci_dev, const struct pci_device
release_mem_region
(
card
->
iobase_mmio_phys
,
256
);
release_mem_region
(
card
->
iobase_mmio_phys
,
256
);
}
}
out_pio:
out_pio:
release_region
(
card
->
iobase
,
64
);
out_region2:
release_region
(
card
->
ac97base
,
256
);
release_region
(
card
->
ac97base
,
256
);
out_region2:
release_region
(
card
->
iobase
,
64
);
out_region1:
out_region1:
pci_free_consistent
(
pci_dev
,
sizeof
(
struct
i810_channel
)
*
NR_HW_CH
,
pci_free_consistent
(
pci_dev
,
sizeof
(
struct
i810_channel
)
*
NR_HW_CH
,
card
->
channel
,
card
->
chandma
);
card
->
channel
,
card
->
chandma
);
...
...
sound/oss/vidc.h
浏览文件 @
617e44fd
...
@@ -10,10 +10,6 @@
...
@@ -10,10 +10,6 @@
* VIDC sound function prototypes
* VIDC sound function prototypes
*/
*/
/* vidc.c */
extern
int
vidc_busy
;
/* vidc_fill.S */
/* vidc_fill.S */
/*
/*
...
...
sound/pci/Kconfig
浏览文件 @
617e44fd
...
@@ -314,7 +314,7 @@ config SND_YMFPCI
...
@@ -314,7 +314,7 @@ config SND_YMFPCI
config SND_ALS4000
config SND_ALS4000
tristate "Avance Logic ALS4000"
tristate "Avance Logic ALS4000"
depends on SND
depends on SND
&& ISA_DMA_API
select SND_OPL3_LIB
select SND_OPL3_LIB
select SND_MPU401_UART
select SND_MPU401_UART
select SND_PCM
select SND_PCM
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录