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
b2ab040d
Commit
b2ab040d
authored
Oct 27, 2005
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master'
parents
1f57389a
741b2252
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
103 additions
and
54 deletions
+103
-54
Makefile
Makefile
+1
-1
arch/arm/mach-pxa/corgi_lcd.c
arch/arm/mach-pxa/corgi_lcd.c
+2
-0
arch/ppc64/kernel/mpic.c
arch/ppc64/kernel/mpic.c
+2
-2
drivers/char/drm/radeon_cp.c
drivers/char/drm/radeon_cp.c
+6
-5
drivers/cpufreq/cpufreq_conservative.c
drivers/cpufreq/cpufreq_conservative.c
+3
-3
drivers/md/md.c
drivers/md/md.c
+6
-4
drivers/serial/8250_pci.c
drivers/serial/8250_pci.c
+25
-1
fs/hfsplus/super.c
fs/hfsplus/super.c
+1
-0
include/asm-arm/bitops.h
include/asm-arm/bitops.h
+0
-1
include/asm-x86_64/pci.h
include/asm-x86_64/pci.h
+3
-3
include/linux/pci_ids.h
include/linux/pci_ids.h
+2
-0
kernel/exit.c
kernel/exit.c
+8
-0
kernel/posix-cpu-timers.c
kernel/posix-cpu-timers.c
+32
-31
kernel/sched.c
kernel/sched.c
+1
-0
mm/page_alloc.c
mm/page_alloc.c
+2
-0
net/core/wireless.c
net/core/wireless.c
+7
-2
net/ipv4/tcp_input.c
net/ipv4/tcp_input.c
+1
-0
net/sunrpc/svcsock.c
net/sunrpc/svcsock.c
+1
-1
No files found.
Makefile
View file @
b2ab040d
VERSION
=
2
VERSION
=
2
PATCHLEVEL
=
6
PATCHLEVEL
=
6
SUBLEVEL
=
14
SUBLEVEL
=
14
EXTRAVERSION
=
-rc5
EXTRAVERSION
=
NAME
=
Affluent Albatross
NAME
=
Affluent Albatross
# *DOCUMENTATION*
# *DOCUMENTATION*
...
...
arch/arm/mach-pxa/corgi_lcd.c
View file @
b2ab040d
...
@@ -488,6 +488,7 @@ static int is_pxafb_device(struct device * dev, void * data)
...
@@ -488,6 +488,7 @@ static int is_pxafb_device(struct device * dev, void * data)
unsigned
long
spitz_get_hsync_len
(
void
)
unsigned
long
spitz_get_hsync_len
(
void
)
{
{
#ifdef CONFIG_FB_PXA
if
(
!
spitz_pxafb_dev
)
{
if
(
!
spitz_pxafb_dev
)
{
spitz_pxafb_dev
=
bus_find_device
(
&
platform_bus_type
,
NULL
,
NULL
,
is_pxafb_device
);
spitz_pxafb_dev
=
bus_find_device
(
&
platform_bus_type
,
NULL
,
NULL
,
is_pxafb_device
);
if
(
!
spitz_pxafb_dev
)
if
(
!
spitz_pxafb_dev
)
...
@@ -496,6 +497,7 @@ unsigned long spitz_get_hsync_len(void)
...
@@ -496,6 +497,7 @@ unsigned long spitz_get_hsync_len(void)
if
(
!
get_hsync_time
)
if
(
!
get_hsync_time
)
get_hsync_time
=
symbol_get
(
pxafb_get_hsync_time
);
get_hsync_time
=
symbol_get
(
pxafb_get_hsync_time
);
if
(
!
get_hsync_time
)
if
(
!
get_hsync_time
)
#endif
return
0
;
return
0
;
return
pxafb_get_hsync_time
(
spitz_pxafb_dev
);
return
pxafb_get_hsync_time
(
spitz_pxafb_dev
);
...
...
arch/ppc64/kernel/mpic.c
View file @
b2ab040d
...
@@ -506,8 +506,8 @@ struct mpic * __init mpic_alloc(unsigned long phys_addr,
...
@@ -506,8 +506,8 @@ struct mpic * __init mpic_alloc(unsigned long phys_addr,
mpic
->
senses_count
=
senses_count
;
mpic
->
senses_count
=
senses_count
;
/* Map the global registers */
/* Map the global registers */
mpic
->
gregs
=
ioremap
(
phys_addr
+
MPIC_GREG_BASE
,
0x
1
000
);
mpic
->
gregs
=
ioremap
(
phys_addr
+
MPIC_GREG_BASE
,
0x
2
000
);
mpic
->
tmregs
=
mpic
->
gregs
+
(
MPIC_TIMER_BASE
>>
2
);
mpic
->
tmregs
=
mpic
->
gregs
+
(
(
MPIC_TIMER_BASE
-
MPIC_GREG_BASE
)
>>
2
);
BUG_ON
(
mpic
->
gregs
==
NULL
);
BUG_ON
(
mpic
->
gregs
==
NULL
);
/* Reset */
/* Reset */
...
...
drivers/char/drm/radeon_cp.c
View file @
b2ab040d
...
@@ -1133,10 +1133,10 @@ static void radeon_cp_init_ring_buffer( drm_device_t *dev,
...
@@ -1133,10 +1133,10 @@ static void radeon_cp_init_ring_buffer( drm_device_t *dev,
ring_start
=
(
dev_priv
->
cp_ring
->
offset
ring_start
=
(
dev_priv
->
cp_ring
->
offset
-
dev
->
agp
->
base
-
dev
->
agp
->
base
+
dev_priv
->
gart_vm_start
);
+
dev_priv
->
gart_vm_start
);
}
else
}
else
#endif
#endif
ring_start
=
(
dev_priv
->
cp_ring
->
offset
ring_start
=
(
dev_priv
->
cp_ring
->
offset
-
dev
->
sg
->
handle
-
(
unsigned
long
)
dev
->
sg
->
virtual
+
dev_priv
->
gart_vm_start
);
+
dev_priv
->
gart_vm_start
);
RADEON_WRITE
(
RADEON_CP_RB_BASE
,
ring_start
);
RADEON_WRITE
(
RADEON_CP_RB_BASE
,
ring_start
);
...
@@ -1164,7 +1164,8 @@ static void radeon_cp_init_ring_buffer( drm_device_t *dev,
...
@@ -1164,7 +1164,8 @@ static void radeon_cp_init_ring_buffer( drm_device_t *dev,
drm_sg_mem_t
*
entry
=
dev
->
sg
;
drm_sg_mem_t
*
entry
=
dev
->
sg
;
unsigned
long
tmp_ofs
,
page_ofs
;
unsigned
long
tmp_ofs
,
page_ofs
;
tmp_ofs
=
dev_priv
->
ring_rptr
->
offset
-
dev
->
sg
->
handle
;
tmp_ofs
=
dev_priv
->
ring_rptr
->
offset
-
(
unsigned
long
)
dev
->
sg
->
virtual
;
page_ofs
=
tmp_ofs
>>
PAGE_SHIFT
;
page_ofs
=
tmp_ofs
>>
PAGE_SHIFT
;
RADEON_WRITE
(
RADEON_CP_RB_RPTR_ADDR
,
RADEON_WRITE
(
RADEON_CP_RB_RPTR_ADDR
,
...
@@ -1491,8 +1492,8 @@ static int radeon_do_init_cp( drm_device_t *dev, drm_radeon_init_t *init )
...
@@ -1491,8 +1492,8 @@ static int radeon_do_init_cp( drm_device_t *dev, drm_radeon_init_t *init )
else
else
#endif
#endif
dev_priv
->
gart_buffers_offset
=
(
dev
->
agp_buffer_map
->
offset
dev_priv
->
gart_buffers_offset
=
(
dev
->
agp_buffer_map
->
offset
-
dev
->
sg
->
handle
-
(
unsigned
long
)
dev
->
sg
->
virtual
+
dev_priv
->
gart_vm_start
);
+
dev_priv
->
gart_vm_start
);
DRM_DEBUG
(
"dev_priv->gart_size %d
\n
"
,
DRM_DEBUG
(
"dev_priv->gart_size %d
\n
"
,
dev_priv
->
gart_size
);
dev_priv
->
gart_size
);
...
...
drivers/cpufreq/cpufreq_conservative.c
View file @
b2ab040d
...
@@ -315,9 +315,9 @@ static void dbs_check_cpu(int cpu)
...
@@ -315,9 +315,9 @@ static void dbs_check_cpu(int cpu)
policy
=
this_dbs_info
->
cur_policy
;
policy
=
this_dbs_info
->
cur_policy
;
if
(
init_flag
==
0
)
{
if
(
init_flag
==
0
)
{
for
(
/* NULL */
;
init_flag
<
NR_CPUS
;
init_flag
++
)
{
for
_each_online_cpu
(
j
)
{
dbs_info
=
&
per_cpu
(
cpu_dbs_info
,
init_flag
);
dbs_info
=
&
per_cpu
(
cpu_dbs_info
,
j
);
requested_freq
[
cpu
]
=
dbs_info
->
cur_policy
->
cur
;
requested_freq
[
j
]
=
dbs_info
->
cur_policy
->
cur
;
}
}
init_flag
=
1
;
init_flag
=
1
;
}
}
...
...
drivers/md/md.c
View file @
b2ab040d
...
@@ -3568,7 +3568,8 @@ static void md_do_sync(mddev_t *mddev)
...
@@ -3568,7 +3568,8 @@ static void md_do_sync(mddev_t *mddev)
mddev
->
curr_resync
=
2
;
mddev
->
curr_resync
=
2
;
try_again:
try_again:
if
(
signal_pending
(
current
))
{
if
(
signal_pending
(
current
)
||
kthread_should_stop
())
{
flush_signals
(
current
);
flush_signals
(
current
);
set_bit
(
MD_RECOVERY_INTR
,
&
mddev
->
recovery
);
set_bit
(
MD_RECOVERY_INTR
,
&
mddev
->
recovery
);
goto
skip
;
goto
skip
;
...
@@ -3590,8 +3591,9 @@ static void md_do_sync(mddev_t *mddev)
...
@@ -3590,8 +3591,9 @@ static void md_do_sync(mddev_t *mddev)
*/
*/
continue
;
continue
;
prepare_to_wait
(
&
resync_wait
,
&
wq
,
TASK_INTERRUPTIBLE
);
prepare_to_wait
(
&
resync_wait
,
&
wq
,
TASK_INTERRUPTIBLE
);
if
(
!
signal_pending
(
current
)
if
(
!
signal_pending
(
current
)
&&
&&
mddev2
->
curr_resync
>=
mddev
->
curr_resync
)
{
!
kthread_should_stop
()
&&
mddev2
->
curr_resync
>=
mddev
->
curr_resync
)
{
printk
(
KERN_INFO
"md: delaying resync of %s"
printk
(
KERN_INFO
"md: delaying resync of %s"
" until %s has finished resync (they"
" until %s has finished resync (they"
" share one or more physical units)
\n
"
,
" share one or more physical units)
\n
"
,
...
@@ -3697,7 +3699,7 @@ static void md_do_sync(mddev_t *mddev)
...
@@ -3697,7 +3699,7 @@ static void md_do_sync(mddev_t *mddev)
}
}
if
(
signal_pending
(
current
))
{
if
(
signal_pending
(
current
)
||
kthread_should_stop
()
)
{
/*
/*
* got a signal, exit.
* got a signal, exit.
*/
*/
...
...
drivers/serial/8250_pci.c
View file @
b2ab040d
...
@@ -152,6 +152,7 @@ static int __devinit pci_hp_diva_init(struct pci_dev *dev)
...
@@ -152,6 +152,7 @@ static int __devinit pci_hp_diva_init(struct pci_dev *dev)
rc
=
4
;
rc
=
4
;
break
;
break
;
case
PCI_DEVICE_ID_HP_DIVA_POWERBAR
:
case
PCI_DEVICE_ID_HP_DIVA_POWERBAR
:
case
PCI_DEVICE_ID_HP_DIVA_HURRICANE
:
rc
=
1
;
rc
=
1
;
break
;
break
;
}
}
...
@@ -226,8 +227,10 @@ static int __devinit pci_plx9050_init(struct pci_dev *dev)
...
@@ -226,8 +227,10 @@ static int __devinit pci_plx9050_init(struct pci_dev *dev)
}
}
irq_config
=
0x41
;
irq_config
=
0x41
;
if
(
dev
->
vendor
==
PCI_VENDOR_ID_PANACOM
)
if
(
dev
->
vendor
==
PCI_VENDOR_ID_PANACOM
||
dev
->
subsystem_vendor
==
PCI_SUBVENDOR_ID_EXSYS
)
{
irq_config
=
0x43
;
irq_config
=
0x43
;
}
if
((
dev
->
vendor
==
PCI_VENDOR_ID_PLX
)
&&
if
((
dev
->
vendor
==
PCI_VENDOR_ID_PLX
)
&&
(
dev
->
device
==
PCI_DEVICE_ID_PLX_ROMULUS
))
{
(
dev
->
device
==
PCI_DEVICE_ID_PLX_ROMULUS
))
{
/*
/*
...
@@ -661,6 +664,15 @@ static struct pci_serial_quirk pci_serial_quirks[] = {
...
@@ -661,6 +664,15 @@ static struct pci_serial_quirk pci_serial_quirks[] = {
/*
/*
* PLX
* PLX
*/
*/
{
.
vendor
=
PCI_VENDOR_ID_PLX
,
.
device
=
PCI_DEVICE_ID_PLX_9050
,
.
subvendor
=
PCI_SUBVENDOR_ID_EXSYS
,
.
subdevice
=
PCI_SUBDEVICE_ID_EXSYS_4055
,
.
init
=
pci_plx9050_init
,
.
setup
=
pci_default_setup
,
.
exit
=
__devexit_p
(
pci_plx9050_exit
),
},
{
{
.
vendor
=
PCI_VENDOR_ID_PLX
,
.
vendor
=
PCI_VENDOR_ID_PLX
,
.
device
=
PCI_DEVICE_ID_PLX_9050
,
.
device
=
PCI_DEVICE_ID_PLX_9050
,
...
@@ -927,6 +939,7 @@ enum pci_board_num_t {
...
@@ -927,6 +939,7 @@ enum pci_board_num_t {
pbn_panacom
,
pbn_panacom
,
pbn_panacom2
,
pbn_panacom2
,
pbn_panacom4
,
pbn_panacom4
,
pbn_exsys_4055
,
pbn_plx_romulus
,
pbn_plx_romulus
,
pbn_oxsemi
,
pbn_oxsemi
,
pbn_intel_i960
,
pbn_intel_i960
,
...
@@ -1292,6 +1305,13 @@ static struct pciserial_board pci_boards[] __devinitdata = {
...
@@ -1292,6 +1305,13 @@ static struct pciserial_board pci_boards[] __devinitdata = {
.
reg_shift
=
7
,
.
reg_shift
=
7
,
},
},
[
pbn_exsys_4055
]
=
{
.
flags
=
FL_BASE2
,
.
num_ports
=
4
,
.
base_baud
=
115200
,
.
uart_offset
=
8
,
},
/* I think this entry is broken - the first_offset looks wrong --rmk */
/* I think this entry is broken - the first_offset looks wrong --rmk */
[
pbn_plx_romulus
]
=
{
[
pbn_plx_romulus
]
=
{
.
flags
=
FL_BASE2
,
.
flags
=
FL_BASE2
,
...
@@ -1853,6 +1873,10 @@ static struct pci_device_id serial_pci_tbl[] = {
...
@@ -1853,6 +1873,10 @@ static struct pci_device_id serial_pci_tbl[] = {
PCI_SUBVENDOR_ID_CHASE_PCIRAS
,
PCI_SUBVENDOR_ID_CHASE_PCIRAS
,
PCI_SUBDEVICE_ID_CHASE_PCIRAS8
,
0
,
0
,
PCI_SUBDEVICE_ID_CHASE_PCIRAS8
,
0
,
0
,
pbn_b2_8_460800
},
pbn_b2_8_460800
},
{
PCI_VENDOR_ID_PLX
,
PCI_DEVICE_ID_PLX_9050
,
PCI_SUBVENDOR_ID_EXSYS
,
PCI_SUBDEVICE_ID_EXSYS_4055
,
0
,
0
,
pbn_exsys_4055
},
/*
/*
* Megawolf Romulus PCI Serial Card, from Mike Hudson
* Megawolf Romulus PCI Serial Card, from Mike Hudson
* (Exoray@isys.ca)
* (Exoray@isys.ca)
...
...
fs/hfsplus/super.c
View file @
b2ab040d
...
@@ -50,6 +50,7 @@ static void hfsplus_read_inode(struct inode *inode)
...
@@ -50,6 +50,7 @@ static void hfsplus_read_inode(struct inode *inode)
init_MUTEX
(
&
HFSPLUS_I
(
inode
).
extents_lock
);
init_MUTEX
(
&
HFSPLUS_I
(
inode
).
extents_lock
);
HFSPLUS_I
(
inode
).
flags
=
0
;
HFSPLUS_I
(
inode
).
flags
=
0
;
HFSPLUS_I
(
inode
).
rsrc_inode
=
NULL
;
HFSPLUS_I
(
inode
).
rsrc_inode
=
NULL
;
atomic_set
(
&
HFSPLUS_I
(
inode
).
opencnt
,
0
);
if
(
inode
->
i_ino
>=
HFSPLUS_FIRSTUSER_CNID
)
{
if
(
inode
->
i_ino
>=
HFSPLUS_FIRSTUSER_CNID
)
{
read_inode:
read_inode:
...
...
include/asm-arm/bitops.h
View file @
b2ab040d
...
@@ -347,7 +347,6 @@ static inline unsigned long __ffs(unsigned long word)
...
@@ -347,7 +347,6 @@ static inline unsigned long __ffs(unsigned long word)
* the clz instruction for much better code efficiency.
* the clz instruction for much better code efficiency.
*/
*/
static
__inline__
int
generic_fls
(
int
x
);
#define fls(x) \
#define fls(x) \
( __builtin_constant_p(x) ? generic_fls(x) : \
( __builtin_constant_p(x) ? generic_fls(x) : \
({ int __r; asm("clz\t%0, %1" : "=r"(__r) : "r"(x) : "cc"); 32-__r; }) )
({ int __r; asm("clz\t%0, %1" : "=r"(__r) : "r"(x) : "cc"); 32-__r; }) )
...
...
include/asm-x86_64/pci.h
View file @
b2ab040d
...
@@ -50,10 +50,10 @@ extern int iommu_setup(char *opt);
...
@@ -50,10 +50,10 @@ extern int iommu_setup(char *opt);
* address space. The networking and block device layers use
* address space. The networking and block device layers use
* this boolean for bounce buffer decisions
* this boolean for bounce buffer decisions
*
*
* On
x86-
64 it mostly equals, but we set it to zero to tell some subsystems
* On
AMD
64 it mostly equals, but we set it to zero to tell some subsystems
* that an
hard or soft
IOMMU is available.
* that an IOMMU is available.
*/
*/
#define PCI_DMA_BUS_IS_PHYS
0
#define PCI_DMA_BUS_IS_PHYS
(no_iommu ? 1 : 0)
/*
/*
* x86-64 always supports DAC, but sometimes it is useful to force
* x86-64 always supports DAC, but sometimes it is useful to force
...
...
include/linux/pci_ids.h
View file @
b2ab040d
...
@@ -723,6 +723,7 @@
...
@@ -723,6 +723,7 @@
#define PCI_DEVICE_ID_HP_DIVA_EVEREST 0x1282
#define PCI_DEVICE_ID_HP_DIVA_EVEREST 0x1282
#define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290
#define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290
#define PCI_DEVICE_ID_HP_DIVA_RMP3 0x1301
#define PCI_DEVICE_ID_HP_DIVA_RMP3 0x1301
#define PCI_DEVICE_ID_HP_DIVA_HURRICANE 0x132a
#define PCI_DEVICE_ID_HP_CISS 0x3210
#define PCI_DEVICE_ID_HP_CISS 0x3210
#define PCI_DEVICE_ID_HP_CISSA 0x3220
#define PCI_DEVICE_ID_HP_CISSA 0x3220
#define PCI_DEVICE_ID_HP_CISSB 0x3222
#define PCI_DEVICE_ID_HP_CISSB 0x3222
...
@@ -2696,6 +2697,7 @@
...
@@ -2696,6 +2697,7 @@
#define PCI_SUBVENDOR_ID_EXSYS 0xd84d
#define PCI_SUBVENDOR_ID_EXSYS 0xd84d
#define PCI_SUBDEVICE_ID_EXSYS_4014 0x4014
#define PCI_SUBDEVICE_ID_EXSYS_4014 0x4014
#define PCI_SUBDEVICE_ID_EXSYS_4055 0x4055
#define PCI_VENDOR_ID_TIGERJET 0xe159
#define PCI_VENDOR_ID_TIGERJET 0xe159
#define PCI_DEVICE_ID_TIGERJET_300 0x0001
#define PCI_DEVICE_ID_TIGERJET_300 0x0001
...
...
kernel/exit.c
View file @
b2ab040d
...
@@ -825,6 +825,14 @@ fastcall NORET_TYPE void do_exit(long code)
...
@@ -825,6 +825,14 @@ fastcall NORET_TYPE void do_exit(long code)
tsk
->
flags
|=
PF_EXITING
;
tsk
->
flags
|=
PF_EXITING
;
/*
* Make sure we don't try to process any timer firings
* while we are already exiting.
*/
tsk
->
it_virt_expires
=
cputime_zero
;
tsk
->
it_prof_expires
=
cputime_zero
;
tsk
->
it_sched_expires
=
0
;
if
(
unlikely
(
in_atomic
()))
if
(
unlikely
(
in_atomic
()))
printk
(
KERN_INFO
"note: %s[%d] exited with preempt_count %d
\n
"
,
printk
(
KERN_INFO
"note: %s[%d] exited with preempt_count %d
\n
"
,
current
->
comm
,
current
->
pid
,
current
->
comm
,
current
->
pid
,
...
...
kernel/posix-cpu-timers.c
View file @
b2ab040d
...
@@ -91,7 +91,7 @@ static inline union cpu_time_count cpu_time_sub(clockid_t which_clock,
...
@@ -91,7 +91,7 @@ static inline union cpu_time_count cpu_time_sub(clockid_t which_clock,
* Update expiry time from increment, and increase overrun count,
* Update expiry time from increment, and increase overrun count,
* given the current clock sample.
* given the current clock sample.
*/
*/
static
inline
void
bump_cpu_timer
(
struct
k_itimer
*
timer
,
static
void
bump_cpu_timer
(
struct
k_itimer
*
timer
,
union
cpu_time_count
now
)
union
cpu_time_count
now
)
{
{
int
i
;
int
i
;
...
@@ -110,7 +110,7 @@ static inline void bump_cpu_timer(struct k_itimer *timer,
...
@@ -110,7 +110,7 @@ static inline void bump_cpu_timer(struct k_itimer *timer,
for
(
i
=
0
;
incr
<
delta
-
incr
;
i
++
)
for
(
i
=
0
;
incr
<
delta
-
incr
;
i
++
)
incr
=
incr
<<
1
;
incr
=
incr
<<
1
;
for
(;
i
>=
0
;
incr
>>=
1
,
i
--
)
{
for
(;
i
>=
0
;
incr
>>=
1
,
i
--
)
{
if
(
delta
<
=
incr
)
if
(
delta
<
incr
)
continue
;
continue
;
timer
->
it
.
cpu
.
expires
.
sched
+=
incr
;
timer
->
it
.
cpu
.
expires
.
sched
+=
incr
;
timer
->
it_overrun
+=
1
<<
i
;
timer
->
it_overrun
+=
1
<<
i
;
...
@@ -128,7 +128,7 @@ static inline void bump_cpu_timer(struct k_itimer *timer,
...
@@ -128,7 +128,7 @@ static inline void bump_cpu_timer(struct k_itimer *timer,
for
(
i
=
0
;
cputime_lt
(
incr
,
cputime_sub
(
delta
,
incr
));
i
++
)
for
(
i
=
0
;
cputime_lt
(
incr
,
cputime_sub
(
delta
,
incr
));
i
++
)
incr
=
cputime_add
(
incr
,
incr
);
incr
=
cputime_add
(
incr
,
incr
);
for
(;
i
>=
0
;
incr
=
cputime_halve
(
incr
),
i
--
)
{
for
(;
i
>=
0
;
incr
=
cputime_halve
(
incr
),
i
--
)
{
if
(
cputime_l
e
(
delta
,
incr
))
if
(
cputime_l
t
(
delta
,
incr
))
continue
;
continue
;
timer
->
it
.
cpu
.
expires
.
cpu
=
timer
->
it
.
cpu
.
expires
.
cpu
=
cputime_add
(
timer
->
it
.
cpu
.
expires
.
cpu
,
incr
);
cputime_add
(
timer
->
it
.
cpu
.
expires
.
cpu
,
incr
);
...
@@ -497,7 +497,7 @@ static void process_timer_rebalance(struct task_struct *p,
...
@@ -497,7 +497,7 @@ static void process_timer_rebalance(struct task_struct *p,
left
=
cputime_div
(
cputime_sub
(
expires
.
cpu
,
val
.
cpu
),
left
=
cputime_div
(
cputime_sub
(
expires
.
cpu
,
val
.
cpu
),
nthreads
);
nthreads
);
do
{
do
{
if
(
!
unlikely
(
t
->
exit_state
))
{
if
(
!
unlikely
(
t
->
flags
&
PF_EXITING
))
{
ticks
=
cputime_add
(
prof_ticks
(
t
),
left
);
ticks
=
cputime_add
(
prof_ticks
(
t
),
left
);
if
(
cputime_eq
(
t
->
it_prof_expires
,
if
(
cputime_eq
(
t
->
it_prof_expires
,
cputime_zero
)
||
cputime_zero
)
||
...
@@ -512,7 +512,7 @@ static void process_timer_rebalance(struct task_struct *p,
...
@@ -512,7 +512,7 @@ static void process_timer_rebalance(struct task_struct *p,
left
=
cputime_div
(
cputime_sub
(
expires
.
cpu
,
val
.
cpu
),
left
=
cputime_div
(
cputime_sub
(
expires
.
cpu
,
val
.
cpu
),
nthreads
);
nthreads
);
do
{
do
{
if
(
!
unlikely
(
t
->
exit_state
))
{
if
(
!
unlikely
(
t
->
flags
&
PF_EXITING
))
{
ticks
=
cputime_add
(
virt_ticks
(
t
),
left
);
ticks
=
cputime_add
(
virt_ticks
(
t
),
left
);
if
(
cputime_eq
(
t
->
it_virt_expires
,
if
(
cputime_eq
(
t
->
it_virt_expires
,
cputime_zero
)
||
cputime_zero
)
||
...
@@ -527,7 +527,7 @@ static void process_timer_rebalance(struct task_struct *p,
...
@@ -527,7 +527,7 @@ static void process_timer_rebalance(struct task_struct *p,
nsleft
=
expires
.
sched
-
val
.
sched
;
nsleft
=
expires
.
sched
-
val
.
sched
;
do_div
(
nsleft
,
nthreads
);
do_div
(
nsleft
,
nthreads
);
do
{
do
{
if
(
!
unlikely
(
t
->
exit_state
))
{
if
(
!
unlikely
(
t
->
flags
&
PF_EXITING
))
{
ns
=
t
->
sched_time
+
nsleft
;
ns
=
t
->
sched_time
+
nsleft
;
if
(
t
->
it_sched_expires
==
0
||
if
(
t
->
it_sched_expires
==
0
||
t
->
it_sched_expires
>
ns
)
{
t
->
it_sched_expires
>
ns
)
{
...
@@ -566,6 +566,9 @@ static void arm_timer(struct k_itimer *timer, union cpu_time_count now)
...
@@ -566,6 +566,9 @@ static void arm_timer(struct k_itimer *timer, union cpu_time_count now)
struct
cpu_timer_list
*
next
;
struct
cpu_timer_list
*
next
;
unsigned
long
i
;
unsigned
long
i
;
if
(
CPUCLOCK_PERTHREAD
(
timer
->
it_clock
)
&&
(
p
->
flags
&
PF_EXITING
))
return
;
head
=
(
CPUCLOCK_PERTHREAD
(
timer
->
it_clock
)
?
head
=
(
CPUCLOCK_PERTHREAD
(
timer
->
it_clock
)
?
p
->
cpu_timers
:
p
->
signal
->
cpu_timers
);
p
->
cpu_timers
:
p
->
signal
->
cpu_timers
);
head
+=
CPUCLOCK_WHICH
(
timer
->
it_clock
);
head
+=
CPUCLOCK_WHICH
(
timer
->
it_clock
);
...
@@ -576,17 +579,15 @@ static void arm_timer(struct k_itimer *timer, union cpu_time_count now)
...
@@ -576,17 +579,15 @@ static void arm_timer(struct k_itimer *timer, union cpu_time_count now)
listpos
=
head
;
listpos
=
head
;
if
(
CPUCLOCK_WHICH
(
timer
->
it_clock
)
==
CPUCLOCK_SCHED
)
{
if
(
CPUCLOCK_WHICH
(
timer
->
it_clock
)
==
CPUCLOCK_SCHED
)
{
list_for_each_entry
(
next
,
head
,
entry
)
{
list_for_each_entry
(
next
,
head
,
entry
)
{
if
(
next
->
expires
.
sched
>
nt
->
expires
.
sched
)
{
if
(
next
->
expires
.
sched
>
nt
->
expires
.
sched
)
listpos
=
&
next
->
entry
;
break
;
break
;
}
listpos
=
&
next
->
entry
;
}
}
}
else
{
}
else
{
list_for_each_entry
(
next
,
head
,
entry
)
{
list_for_each_entry
(
next
,
head
,
entry
)
{
if
(
cputime_gt
(
next
->
expires
.
cpu
,
nt
->
expires
.
cpu
))
{
if
(
cputime_gt
(
next
->
expires
.
cpu
,
nt
->
expires
.
cpu
))
listpos
=
&
next
->
entry
;
break
;
break
;
}
listpos
=
&
next
->
entry
;
}
}
}
}
list_add
(
&
nt
->
entry
,
listpos
);
list_add
(
&
nt
->
entry
,
listpos
);
...
@@ -1206,7 +1207,7 @@ static void check_process_timers(struct task_struct *tsk,
...
@@ -1206,7 +1207,7 @@ static void check_process_timers(struct task_struct *tsk,
do
{
do
{
t
=
next_thread
(
t
);
t
=
next_thread
(
t
);
}
while
(
unlikely
(
t
->
exit_state
));
}
while
(
unlikely
(
t
->
flags
&
PF_EXITING
));
}
while
(
t
!=
tsk
);
}
while
(
t
!=
tsk
);
}
}
}
}
...
@@ -1295,30 +1296,30 @@ void run_posix_cpu_timers(struct task_struct *tsk)
...
@@ -1295,30 +1296,30 @@ void run_posix_cpu_timers(struct task_struct *tsk)
#undef UNEXPIRED
#undef UNEXPIRED
BUG_ON
(
tsk
->
exit_state
);
/*
/*
* Double-check with locks held.
* Double-check with locks held.
*/
*/
read_lock
(
&
tasklist_lock
);
read_lock
(
&
tasklist_lock
);
if
(
likely
(
tsk
->
signal
!=
NULL
))
{
spin_lock
(
&
tsk
->
sighand
->
siglock
);
spin_lock
(
&
tsk
->
sighand
->
siglock
);
/*
/*
* Here we take off tsk->cpu_timers[N] and tsk->signal->cpu_timers[N]
* Here we take off tsk->cpu_timers[N] and tsk->signal->cpu_timers[N]
* all the timers that are firing, and put them on the firing list.
* all the timers that are firing, and put them on the firing list.
*/
*/
check_thread_timers
(
tsk
,
&
firing
);
check_thread_timers
(
tsk
,
&
firing
);
check_process_timers
(
tsk
,
&
firing
);
check_process_timers
(
tsk
,
&
firing
);
/*
/*
* We must release these locks before taking any timer's lock.
* We must release these locks before taking any timer's lock.
* There is a potential race with timer deletion here, as the
* There is a potential race with timer deletion here, as the
* siglock now protects our private firing list. We have set
* siglock now protects our private firing list. We have set
* the firing flag in each timer, so that a deletion attempt
* the firing flag in each timer, so that a deletion attempt
* that gets the timer lock before we do will give it up and
* that gets the timer lock before we do will give it up and
* spin until we've taken care of that timer below.
* spin until we've taken care of that timer below.
*/
*/
spin_unlock
(
&
tsk
->
sighand
->
siglock
);
spin_unlock
(
&
tsk
->
sighand
->
siglock
);
}
read_unlock
(
&
tasklist_lock
);
read_unlock
(
&
tasklist_lock
);
/*
/*
...
...
kernel/sched.c
View file @
b2ab040d
...
@@ -3879,6 +3879,7 @@ EXPORT_SYMBOL(cpu_present_map);
...
@@ -3879,6 +3879,7 @@ EXPORT_SYMBOL(cpu_present_map);
#ifndef CONFIG_SMP
#ifndef CONFIG_SMP
cpumask_t
cpu_online_map
=
CPU_MASK_ALL
;
cpumask_t
cpu_online_map
=
CPU_MASK_ALL
;
EXPORT_SYMBOL_GPL
(
cpu_online_map
);
cpumask_t
cpu_possible_map
=
CPU_MASK_ALL
;
cpumask_t
cpu_possible_map
=
CPU_MASK_ALL
;
#endif
#endif
...
...
mm/page_alloc.c
View file @
b2ab040d
...
@@ -1750,6 +1750,8 @@ inline void setup_pageset(struct per_cpu_pageset *p, unsigned long batch)
...
@@ -1750,6 +1750,8 @@ inline void setup_pageset(struct per_cpu_pageset *p, unsigned long batch)
{
{
struct
per_cpu_pages
*
pcp
;
struct
per_cpu_pages
*
pcp
;
memset
(
p
,
0
,
sizeof
(
*
p
));
pcp
=
&
p
->
pcp
[
0
];
/* hot */
pcp
=
&
p
->
pcp
[
0
];
/* hot */
pcp
->
count
=
0
;
pcp
->
count
=
0
;
pcp
->
low
=
2
*
batch
;
pcp
->
low
=
2
*
batch
;
...
...
net/core/wireless.c
View file @
b2ab040d
...
@@ -455,10 +455,15 @@ static inline struct iw_statistics *get_wireless_stats(struct net_device *dev)
...
@@ -455,10 +455,15 @@ static inline struct iw_statistics *get_wireless_stats(struct net_device *dev)
/* Old location, field to be removed in next WE */
/* Old location, field to be removed in next WE */
if
(
dev
->
get_wireless_stats
)
{
if
(
dev
->
get_wireless_stats
)
{
printk
(
KERN_DEBUG
"%s (WE) : Driver using old /proc/net/wireless support, please fix driver !
\n
"
,
static
int
printed_message
;
dev
->
name
);
if
(
!
printed_message
++
)
printk
(
KERN_DEBUG
"%s (WE) : Driver using old /proc/net/wireless support, please fix driver !
\n
"
,
dev
->
name
);
return
dev
->
get_wireless_stats
(
dev
);
return
dev
->
get_wireless_stats
(
dev
);
}
}
/* Not found */
/* Not found */
return
(
struct
iw_statistics
*
)
NULL
;
return
(
struct
iw_statistics
*
)
NULL
;
}
}
...
...
net/ipv4/tcp_input.c
View file @
b2ab040d
...
@@ -2239,6 +2239,7 @@ static int tcp_ack_update_window(struct sock *sk, struct tcp_sock *tp,
...
@@ -2239,6 +2239,7 @@ static int tcp_ack_update_window(struct sock *sk, struct tcp_sock *tp,
/* Note, it is the only place, where
/* Note, it is the only place, where
* fast path is recovered for sending TCP.
* fast path is recovered for sending TCP.
*/
*/
tp
->
pred_flags
=
0
;
tcp_fast_path_check
(
sk
,
tp
);
tcp_fast_path_check
(
sk
,
tp
);
if
(
nwin
>
tp
->
max_window
)
{
if
(
nwin
>
tp
->
max_window
)
{
...
...
net/sunrpc/svcsock.c
View file @
b2ab040d
...
@@ -587,7 +587,7 @@ svc_udp_recvfrom(struct svc_rqst *rqstp)
...
@@ -587,7 +587,7 @@ svc_udp_recvfrom(struct svc_rqst *rqstp)
struct
timeval
tv
;
struct
timeval
tv
;
tv
.
tv_sec
=
xtime
.
tv_sec
;
tv
.
tv_sec
=
xtime
.
tv_sec
;
tv
.
tv_usec
=
xtime
.
tv_nsec
*
1000
;
tv
.
tv_usec
=
xtime
.
tv_nsec
/
NSEC_PER_USEC
;
skb_set_timestamp
(
skb
,
&
tv
);
skb_set_timestamp
(
skb
,
&
tv
);
/* Don't enable netstamp, sunrpc doesn't
/* Don't enable netstamp, sunrpc doesn't
need that much accuracy */
need that much accuracy */
...
...
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