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
7cec2ef4
Commit
7cec2ef4
authored
Apr 02, 2009
by
Kyle McMartin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'rusty-cpumask-parisc' into parisc
parents
91400ac3
9bc181d8
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
16 additions
and
15 deletions
+16
-15
arch/parisc/include/asm/smp.h
arch/parisc/include/asm/smp.h
+2
-1
arch/parisc/kernel/irq.c
arch/parisc/kernel/irq.c
+2
-2
arch/parisc/kernel/processor.c
arch/parisc/kernel/processor.c
+3
-3
arch/parisc/kernel/smp.c
arch/parisc/kernel/smp.c
+9
-9
No files found.
arch/parisc/include/asm/smp.h
View file @
7cec2ef4
...
...
@@ -29,7 +29,8 @@ extern void smp_send_reschedule(int cpu);
extern
void
smp_send_all_nop
(
void
);
extern
void
arch_send_call_function_single_ipi
(
int
cpu
);
extern
void
arch_send_call_function_ipi
(
cpumask_t
mask
);
extern
void
arch_send_call_function_ipi_mask
(
const
struct
cpumask
*
mask
);
#define arch_send_call_function_ipi_mask arch_send_call_function_ipi_mask
#endif
/* !ASSEMBLY */
...
...
arch/parisc/kernel/irq.c
View file @
7cec2ef4
...
...
@@ -311,12 +311,12 @@ unsigned long txn_alloc_addr(unsigned int virt_irq)
next_cpu
++
;
/* assign to "next" CPU we want this bugger on */
/* validate entry */
while
((
next_cpu
<
NR_CPUS
)
&&
while
((
next_cpu
<
nr_cpu_ids
)
&&
(
!
per_cpu
(
cpu_data
,
next_cpu
).
txn_addr
||
!
cpu_online
(
next_cpu
)))
next_cpu
++
;
if
(
next_cpu
>=
NR_CPUS
)
if
(
next_cpu
>=
nr_cpu_ids
)
next_cpu
=
0
;
/* nothing else, assign monarch */
return
txn_affinity_addr
(
virt_irq
,
next_cpu
);
...
...
arch/parisc/kernel/processor.c
View file @
7cec2ef4
...
...
@@ -100,8 +100,8 @@ static int __cpuinit processor_probe(struct parisc_device *dev)
struct
cpuinfo_parisc
*
p
;
#ifdef CONFIG_SMP
if
(
num_online_cpus
()
>=
NR_CPUS
)
{
printk
(
KERN_INFO
"num_online_cpus() >=
NR_CPUS
\n
"
);
if
(
num_online_cpus
()
>=
nr_cpu_ids
)
{
printk
(
KERN_INFO
"num_online_cpus() >=
nr_cpu_ids
\n
"
);
return
1
;
}
#else
...
...
@@ -214,7 +214,7 @@ static int __cpuinit processor_probe(struct parisc_device *dev)
*/
#ifdef CONFIG_SMP
if
(
cpuid
)
{
cpu_set
(
cpuid
,
cpu_present_map
);
set_cpu_present
(
cpuid
,
true
);
cpu_up
(
cpuid
);
}
#endif
...
...
arch/parisc/kernel/smp.c
View file @
7cec2ef4
...
...
@@ -114,7 +114,7 @@ halt_processor(void)
{
/* REVISIT : redirect I/O Interrupts to another CPU? */
/* REVISIT : does PM *know* this CPU isn't available? */
cpu_clear
(
smp_processor_id
(),
cpu_online_map
);
set_cpu_online
(
smp_processor_id
(),
false
);
local_irq_disable
();
for
(;;)
;
...
...
@@ -215,11 +215,11 @@ ipi_send(int cpu, enum ipi_message_type op)
}
static
void
send_IPI_mask
(
c
pumask_t
mask
,
enum
ipi_message_type
op
)
send_IPI_mask
(
c
onst
struct
cpumask
*
mask
,
enum
ipi_message_type
op
)
{
int
cpu
;
for_each_cpu
_mask
(
cpu
,
mask
)
for_each_cpu
(
cpu
,
mask
)
ipi_send
(
cpu
,
op
);
}
...
...
@@ -258,7 +258,7 @@ smp_send_all_nop(void)
send_IPI_allbutself
(
IPI_NOP
);
}
void
arch_send_call_function_ipi
(
cpumask_t
mask
)
void
arch_send_call_function_ipi
_mask
(
const
struct
cpumask
*
mask
)
{
send_IPI_mask
(
mask
,
IPI_CALL_FUNC
);
}
...
...
@@ -297,13 +297,14 @@ smp_cpu_init(int cpunum)
mb
();
/* Well, support 2.4 linux scheme as well. */
if
(
cpu_
test_and_
set
(
cpunum
,
cpu_online_map
))
if
(
cpu_
is
set
(
cpunum
,
cpu_online_map
))
{
extern
void
machine_halt
(
void
);
/* arch/parisc.../process.c */
printk
(
KERN_CRIT
"CPU#%d already initialized!
\n
"
,
cpunum
);
machine_halt
();
}
set_cpu_online
(
cpunum
,
true
);
/* Initialise the idle task for this CPU */
atomic_inc
(
&
init_mm
.
mm_count
);
...
...
@@ -425,8 +426,8 @@ void __init smp_prepare_boot_cpu(void)
/* Setup BSP mappings */
printk
(
KERN_INFO
"SMP: bootstrap CPU ID is %d
\n
"
,
bootstrap_processor
);
cpu_set
(
bootstrap_processor
,
cpu_online_map
);
cpu_set
(
bootstrap_processor
,
cpu_present_map
);
set_cpu_online
(
bootstrap_processor
,
true
);
set_cpu_present
(
bootstrap_processor
,
true
);
}
...
...
@@ -437,8 +438,7 @@ void __init smp_prepare_boot_cpu(void)
*/
void
__init
smp_prepare_cpus
(
unsigned
int
max_cpus
)
{
cpus_clear
(
cpu_present_map
);
cpu_set
(
0
,
cpu_present_map
);
init_cpu_present
(
cpumask_of
(
0
));
parisc_max_cpus
=
max_cpus
;
if
(
!
max_cpus
)
...
...
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