Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
ba62e915
Commit
ba62e915
authored
Jul 28, 2009
by
Thomas Gleixner
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'rt/x86' into rt/base
parents
040e6a4c
3f87904e
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
18 additions
and
11 deletions
+18
-11
arch/x86/include/asm/atomic_32.h
arch/x86/include/asm/atomic_32.h
+2
-2
arch/x86/kernel/apic/io_apic.c
arch/x86/kernel/apic/io_apic.c
+5
-2
arch/x86/kernel/kprobes.c
arch/x86/kernel/kprobes.c
+6
-6
arch/x86/kernel/tsc_sync.c
arch/x86/kernel/tsc_sync.c
+4
-0
arch/x86/mm/highmem_32.c
arch/x86/mm/highmem_32.c
+1
-1
No files found.
arch/x86/include/asm/atomic_32.h
View file @
ba62e915
...
...
@@ -186,10 +186,10 @@ static inline int atomic_add_return(int i, atomic_t *v)
#ifdef CONFIG_M386
no_xadd:
/* Legacy 386 processor */
local_irq_save
(
flags
);
raw_
local_irq_save
(
flags
);
__i
=
atomic_read
(
v
);
atomic_set
(
v
,
i
+
__i
);
local_irq_restore
(
flags
);
raw_
local_irq_restore
(
flags
);
return
i
+
__i
;
#endif
}
...
...
arch/x86/kernel/apic/io_apic.c
View file @
ba62e915
...
...
@@ -2164,8 +2164,10 @@ static int __init timer_irq_works(void)
*/
/* jiffies wrap? */
if
(
time_after
(
jiffies
,
t1
+
4
))
if
(
time_after
(
jiffies
,
t1
+
4
)
&&
time_before
(
jiffies
,
t1
+
16
))
return
1
;
return
0
;
}
...
...
@@ -2526,7 +2528,8 @@ static void ack_apic_level(unsigned int irq)
irq_complete_move
(
&
desc
);
#ifdef CONFIG_GENERIC_PENDING_IRQ
/* If we are moving the irq we need to mask it */
if
(
unlikely
(
desc
->
status
&
IRQ_MOVE_PENDING
))
{
if
(
unlikely
(
desc
->
status
&
IRQ_MOVE_PENDING
)
&&
!
(
desc
->
status
&
IRQ_INPROGRESS
))
{
do_unmask_irq
=
1
;
mask_IO_APIC_irq_desc
(
desc
);
}
...
...
arch/x86/kernel/kprobes.c
View file @
ba62e915
...
...
@@ -454,7 +454,7 @@ static void __kprobes setup_singlestep(struct kprobe *p, struct pt_regs *regs,
/* Boost up -- we can execute copied instructions directly */
reset_current_kprobe
();
regs
->
ip
=
(
unsigned
long
)
p
->
ainsn
.
insn
;
preempt_enable
_no_resched
();
preempt_enable
();
return
;
}
#endif
...
...
@@ -480,7 +480,7 @@ static int __kprobes reenter_kprobe(struct kprobe *p, struct pt_regs *regs,
arch_disarm_kprobe
(
p
);
regs
->
ip
=
(
unsigned
long
)
p
->
addr
;
reset_current_kprobe
();
preempt_enable
_no_resched
();
preempt_enable
();
break
;
#endif
case
KPROBE_HIT_ACTIVE
:
...
...
@@ -576,7 +576,7 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
}
}
/* else: not a kprobe fault; let the kernel handle it */
preempt_enable
_no_resched
();
preempt_enable
();
return
0
;
}
...
...
@@ -876,7 +876,7 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs)
}
reset_current_kprobe
();
out:
preempt_enable
_no_resched
();
preempt_enable
();
/*
* if somebody else is singlestepping across a probe point, flags
...
...
@@ -910,7 +910,7 @@ int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr)
restore_previous_kprobe
(
kcb
);
else
reset_current_kprobe
();
preempt_enable
_no_resched
();
preempt_enable
();
break
;
case
KPROBE_HIT_ACTIVE
:
case
KPROBE_HIT_SSDONE
:
...
...
@@ -1051,7 +1051,7 @@ int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs)
memcpy
((
kprobe_opcode_t
*
)(
kcb
->
jprobe_saved_sp
),
kcb
->
jprobes_stack
,
MIN_STACK_SIZE
(
kcb
->
jprobe_saved_sp
));
preempt_enable
_no_resched
();
preempt_enable
();
return
1
;
}
return
0
;
...
...
arch/x86/kernel/tsc_sync.c
View file @
ba62e915
...
...
@@ -104,6 +104,7 @@ static __cpuinit void check_tsc_warp(void)
*/
void
__cpuinit
check_tsc_sync_source
(
int
cpu
)
{
unsigned
long
flags
;
int
cpus
=
2
;
/*
...
...
@@ -129,8 +130,11 @@ void __cpuinit check_tsc_sync_source(int cpu)
/*
* Wait for the target to arrive:
*/
local_save_flags
(
flags
);
local_irq_enable
();
while
(
atomic_read
(
&
start_count
)
!=
cpus
-
1
)
cpu_relax
();
local_irq_restore
(
flags
);
/*
* Trigger the target to continue into the measurement too:
*/
...
...
arch/x86/mm/highmem_32.c
View file @
ba62e915
...
...
@@ -43,7 +43,7 @@ void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot)
idx
=
type
+
KM_TYPE_NR
*
smp_processor_id
();
vaddr
=
__fix_to_virt
(
FIX_KMAP_BEGIN
+
idx
);
BUG
_ON
(
!
pte_none
(
*
(
kmap_pte
-
idx
)));
WARN
_ON
(
!
pte_none
(
*
(
kmap_pte
-
idx
)));
set_pte
(
kmap_pte
-
idx
,
mk_pte
(
page
,
prot
));
return
(
void
*
)
vaddr
;
...
...
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