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
nexedi
linux
Commits
ae6c859b
Commit
ae6c859b
authored
Jun 19, 2006
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
merge linus into release branch
parents
5b4b7a23
427abfa2
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
39 additions
and
43 deletions
+39
-43
Makefile
Makefile
+1
-1
arch/powerpc/mm/hash_native_64.c
arch/powerpc/mm/hash_native_64.c
+2
-2
drivers/cdrom/cdrom.c
drivers/cdrom/cdrom.c
+4
-2
drivers/net/sky2.c
drivers/net/sky2.c
+6
-1
fs/bio.c
fs/bio.c
+3
-2
include/asm-powerpc/cputable.h
include/asm-powerpc/cputable.h
+1
-1
kernel/exit.c
kernel/exit.c
+0
-8
kernel/posix-cpu-timers.c
kernel/posix-cpu-timers.c
+22
-26
No files found.
Makefile
View file @
ae6c859b
VERSION
=
2
VERSION
=
2
PATCHLEVEL
=
6
PATCHLEVEL
=
6
SUBLEVEL
=
17
SUBLEVEL
=
17
EXTRAVERSION
=
-rc6
EXTRAVERSION
=
NAME
=
Crazed Snow-Weasel
NAME
=
Crazed Snow-Weasel
# *DOCUMENTATION*
# *DOCUMENTATION*
...
...
arch/powerpc/mm/hash_native_64.c
View file @
ae6c859b
...
@@ -52,7 +52,7 @@ static inline void __tlbie(unsigned long va, unsigned int psize)
...
@@ -52,7 +52,7 @@ static inline void __tlbie(unsigned long va, unsigned int psize)
default:
default:
penc
=
mmu_psize_defs
[
psize
].
penc
;
penc
=
mmu_psize_defs
[
psize
].
penc
;
va
&=
~
((
1ul
<<
mmu_psize_defs
[
psize
].
shift
)
-
1
);
va
&=
~
((
1ul
<<
mmu_psize_defs
[
psize
].
shift
)
-
1
);
va
|=
(
0x7f
>>
(
8
-
penc
))
<<
12
;
va
|=
penc
<<
12
;
asm
volatile
(
"tlbie %0,1"
:
:
"r"
(
va
)
:
"memory"
);
asm
volatile
(
"tlbie %0,1"
:
:
"r"
(
va
)
:
"memory"
);
break
;
break
;
}
}
...
@@ -74,7 +74,7 @@ static inline void __tlbiel(unsigned long va, unsigned int psize)
...
@@ -74,7 +74,7 @@ static inline void __tlbiel(unsigned long va, unsigned int psize)
default:
default:
penc
=
mmu_psize_defs
[
psize
].
penc
;
penc
=
mmu_psize_defs
[
psize
].
penc
;
va
&=
~
((
1ul
<<
mmu_psize_defs
[
psize
].
shift
)
-
1
);
va
&=
~
((
1ul
<<
mmu_psize_defs
[
psize
].
shift
)
-
1
);
va
|=
(
0x7f
>>
(
8
-
penc
))
<<
12
;
va
|=
penc
<<
12
;
asm
volatile
(
".long 0x7c000224 | (%0 << 11) | (1 << 21)"
asm
volatile
(
".long 0x7c000224 | (%0 << 11) | (1 << 21)"
:
:
"r"
(
va
)
:
"memory"
);
:
:
"r"
(
va
)
:
"memory"
);
break
;
break
;
...
...
drivers/cdrom/cdrom.c
View file @
ae6c859b
...
@@ -1009,9 +1009,9 @@ int cdrom_open(struct cdrom_device_info *cdi, struct inode *ip, struct file *fp)
...
@@ -1009,9 +1009,9 @@ int cdrom_open(struct cdrom_device_info *cdi, struct inode *ip, struct file *fp)
if
(
fp
->
f_mode
&
FMODE_WRITE
)
{
if
(
fp
->
f_mode
&
FMODE_WRITE
)
{
ret
=
-
EROFS
;
ret
=
-
EROFS
;
if
(
cdrom_open_write
(
cdi
))
if
(
cdrom_open_write
(
cdi
))
goto
err
;
goto
err
_release
;
if
(
!
CDROM_CAN
(
CDC_RAM
))
if
(
!
CDROM_CAN
(
CDC_RAM
))
goto
err
;
goto
err
_release
;
ret
=
0
;
ret
=
0
;
cdi
->
media_written
=
0
;
cdi
->
media_written
=
0
;
}
}
...
@@ -1026,6 +1026,8 @@ int cdrom_open(struct cdrom_device_info *cdi, struct inode *ip, struct file *fp)
...
@@ -1026,6 +1026,8 @@ int cdrom_open(struct cdrom_device_info *cdi, struct inode *ip, struct file *fp)
not be mounting, but opening with O_NONBLOCK */
not be mounting, but opening with O_NONBLOCK */
check_disk_change
(
ip
->
i_bdev
);
check_disk_change
(
ip
->
i_bdev
);
return
0
;
return
0
;
err_release:
cdi
->
ops
->
release
(
cdi
);
err:
err:
cdi
->
use_count
--
;
cdi
->
use_count
--
;
return
ret
;
return
ret
;
...
...
drivers/net/sky2.c
View file @
ae6c859b
...
@@ -2255,8 +2255,10 @@ static irqreturn_t sky2_intr(int irq, void *dev_id, struct pt_regs *regs)
...
@@ -2255,8 +2255,10 @@ static irqreturn_t sky2_intr(int irq, void *dev_id, struct pt_regs *regs)
static
void
sky2_netpoll
(
struct
net_device
*
dev
)
static
void
sky2_netpoll
(
struct
net_device
*
dev
)
{
{
struct
sky2_port
*
sky2
=
netdev_priv
(
dev
);
struct
sky2_port
*
sky2
=
netdev_priv
(
dev
);
struct
net_device
*
dev0
=
sky2
->
hw
->
dev
[
0
];
sky2_intr
(
sky2
->
hw
->
pdev
->
irq
,
sky2
->
hw
,
NULL
);
if
(
netif_running
(
dev
)
&&
__netif_rx_schedule_prep
(
dev0
))
__netif_rx_schedule
(
dev0
);
}
}
#endif
#endif
...
@@ -3446,6 +3448,7 @@ static int sky2_suspend(struct pci_dev *pdev, pm_message_t state)
...
@@ -3446,6 +3448,7 @@ static int sky2_suspend(struct pci_dev *pdev, pm_message_t state)
sky2_down
(
dev
);
sky2_down
(
dev
);
netif_device_detach
(
dev
);
netif_device_detach
(
dev
);
netif_poll_disable
(
dev
);
}
}
}
}
...
@@ -3474,6 +3477,8 @@ static int sky2_resume(struct pci_dev *pdev)
...
@@ -3474,6 +3477,8 @@ static int sky2_resume(struct pci_dev *pdev)
struct
net_device
*
dev
=
hw
->
dev
[
i
];
struct
net_device
*
dev
=
hw
->
dev
[
i
];
if
(
dev
&&
netif_running
(
dev
))
{
if
(
dev
&&
netif_running
(
dev
))
{
netif_device_attach
(
dev
);
netif_device_attach
(
dev
);
netif_poll_enable
(
dev
);
err
=
sky2_up
(
dev
);
err
=
sky2_up
(
dev
);
if
(
err
)
{
if
(
err
)
{
printk
(
KERN_ERR
PFX
"%s: could not up: %d
\n
"
,
printk
(
KERN_ERR
PFX
"%s: could not up: %d
\n
"
,
...
...
fs/bio.c
View file @
ae6c859b
...
@@ -654,9 +654,10 @@ static struct bio *__bio_map_user_iov(request_queue_t *q,
...
@@ -654,9 +654,10 @@ static struct bio *__bio_map_user_iov(request_queue_t *q,
write_to_vm
,
0
,
&
pages
[
cur_page
],
NULL
);
write_to_vm
,
0
,
&
pages
[
cur_page
],
NULL
);
up_read
(
&
current
->
mm
->
mmap_sem
);
up_read
(
&
current
->
mm
->
mmap_sem
);
if
(
ret
<
local_nr_pages
)
if
(
ret
<
local_nr_pages
)
{
ret
=
-
EFAULT
;
goto
out_unmap
;
goto
out_unmap
;
}
offset
=
uaddr
&
~
PAGE_MASK
;
offset
=
uaddr
&
~
PAGE_MASK
;
for
(
j
=
cur_page
;
j
<
page_limit
;
j
++
)
{
for
(
j
=
cur_page
;
j
<
page_limit
;
j
++
)
{
...
...
include/asm-powerpc/cputable.h
View file @
ae6c859b
...
@@ -329,7 +329,7 @@ extern void do_cpu_ftr_fixups(unsigned long offset);
...
@@ -329,7 +329,7 @@ extern void do_cpu_ftr_fixups(unsigned long offset);
#define CPU_FTRS_CELL (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \
#define CPU_FTRS_CELL (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \
CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | \
CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | \
CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \
CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \
CPU_FTR_CTRL | CPU_FTR_PAUSE_ZERO)
CPU_FTR_CTRL | CPU_FTR_PAUSE_ZERO
| CPU_FTR_CI_LARGE_PAGE
)
#define CPU_FTRS_COMPATIBLE (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \
#define CPU_FTRS_COMPATIBLE (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \
CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2)
CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2)
#endif
#endif
...
...
kernel/exit.c
View file @
ae6c859b
...
@@ -881,14 +881,6 @@ fastcall NORET_TYPE void do_exit(long code)
...
@@ -881,14 +881,6 @@ 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 @
ae6c859b
...
@@ -555,9 +555,6 @@ static void arm_timer(struct k_itimer *timer, union cpu_time_count now)
...
@@ -555,9 +555,6 @@ 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
);
...
@@ -1173,6 +1170,9 @@ static void check_process_timers(struct task_struct *tsk,
...
@@ -1173,6 +1170,9 @@ static void check_process_timers(struct task_struct *tsk,
}
}
t
=
tsk
;
t
=
tsk
;
do
{
do
{
if
(
unlikely
(
t
->
flags
&
PF_EXITING
))
continue
;
ticks
=
cputime_add
(
cputime_add
(
t
->
utime
,
t
->
stime
),
ticks
=
cputime_add
(
cputime_add
(
t
->
utime
,
t
->
stime
),
prof_left
);
prof_left
);
if
(
!
cputime_eq
(
prof_expires
,
cputime_zero
)
&&
if
(
!
cputime_eq
(
prof_expires
,
cputime_zero
)
&&
...
@@ -1193,11 +1193,7 @@ static void check_process_timers(struct task_struct *tsk,
...
@@ -1193,11 +1193,7 @@ static void check_process_timers(struct task_struct *tsk,
t
->
it_sched_expires
>
sched
))
{
t
->
it_sched_expires
>
sched
))
{
t
->
it_sched_expires
=
sched
;
t
->
it_sched_expires
=
sched
;
}
}
}
while
((
t
=
next_thread
(
t
))
!=
tsk
);
do
{
t
=
next_thread
(
t
);
}
while
(
unlikely
(
t
->
flags
&
PF_EXITING
));
}
while
(
t
!=
tsk
);
}
}
}
}
...
@@ -1289,30 +1285,30 @@ void run_posix_cpu_timers(struct task_struct *tsk)
...
@@ -1289,30 +1285,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
);
spin_lock
(
&
tsk
->
sighand
->
siglock
);
if
(
likely
(
tsk
->
signal
!=
NULL
))
{
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
);
/*
/*
...
...
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