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
fea886ed
Commit
fea886ed
authored
Jul 25, 2009
by
Thomas Gleixner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clocksource: Convert clocksource_lock to atomic_spinlock
Signed-off-by:
Thomas Gleixner
<
tglx@linutronix.de
>
parent
cb1ba1de
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
19 deletions
+19
-19
kernel/time/clocksource.c
kernel/time/clocksource.c
+19
-19
No files found.
kernel/time/clocksource.c
View file @
fea886ed
...
@@ -127,7 +127,7 @@ static struct clocksource *curr_clocksource = &clocksource_jiffies;
...
@@ -127,7 +127,7 @@ static struct clocksource *curr_clocksource = &clocksource_jiffies;
static
struct
clocksource
*
next_clocksource
;
static
struct
clocksource
*
next_clocksource
;
static
struct
clocksource
*
clocksource_override
;
static
struct
clocksource
*
clocksource_override
;
static
LIST_HEAD
(
clocksource_list
);
static
LIST_HEAD
(
clocksource_list
);
static
DEFINE_SPINLOCK
(
clocksource_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
clocksource_lock
);
static
char
override_name
[
32
];
static
char
override_name
[
32
];
static
int
finished_booting
;
static
int
finished_booting
;
...
@@ -296,7 +296,7 @@ void clocksource_resume(void)
...
@@ -296,7 +296,7 @@ void clocksource_resume(void)
struct
clocksource
*
cs
;
struct
clocksource
*
cs
;
unsigned
long
flags
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
list_for_each_entry
(
cs
,
&
clocksource_list
,
list
)
{
list_for_each_entry
(
cs
,
&
clocksource_list
,
list
)
{
if
(
cs
->
resume
)
if
(
cs
->
resume
)
...
@@ -305,7 +305,7 @@ void clocksource_resume(void)
...
@@ -305,7 +305,7 @@ void clocksource_resume(void)
clocksource_resume_watchdog
();
clocksource_resume_watchdog
();
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
}
}
/**
/**
...
@@ -328,12 +328,12 @@ struct clocksource *clocksource_get_next(void)
...
@@ -328,12 +328,12 @@ struct clocksource *clocksource_get_next(void)
{
{
unsigned
long
flags
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
if
(
next_clocksource
&&
finished_booting
)
{
if
(
next_clocksource
&&
finished_booting
)
{
curr_clocksource
=
next_clocksource
;
curr_clocksource
=
next_clocksource
;
next_clocksource
=
NULL
;
next_clocksource
=
NULL
;
}
}
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
return
curr_clocksource
;
return
curr_clocksource
;
}
}
...
@@ -402,11 +402,11 @@ int clocksource_register(struct clocksource *c)
...
@@ -402,11 +402,11 @@ int clocksource_register(struct clocksource *c)
unsigned
long
flags
;
unsigned
long
flags
;
int
ret
;
int
ret
;
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
ret
=
clocksource_enqueue
(
c
);
ret
=
clocksource_enqueue
(
c
);
if
(
!
ret
)
if
(
!
ret
)
next_clocksource
=
select_clocksource
();
next_clocksource
=
select_clocksource
();
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
if
(
!
ret
)
if
(
!
ret
)
clocksource_check_watchdog
(
c
);
clocksource_check_watchdog
(
c
);
return
ret
;
return
ret
;
...
@@ -421,12 +421,12 @@ void clocksource_change_rating(struct clocksource *cs, int rating)
...
@@ -421,12 +421,12 @@ void clocksource_change_rating(struct clocksource *cs, int rating)
{
{
unsigned
long
flags
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
list_del
(
&
cs
->
list
);
list_del
(
&
cs
->
list
);
cs
->
rating
=
rating
;
cs
->
rating
=
rating
;
clocksource_enqueue
(
cs
);
clocksource_enqueue
(
cs
);
next_clocksource
=
select_clocksource
();
next_clocksource
=
select_clocksource
();
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
}
}
/**
/**
...
@@ -436,12 +436,12 @@ void clocksource_unregister(struct clocksource *cs)
...
@@ -436,12 +436,12 @@ void clocksource_unregister(struct clocksource *cs)
{
{
unsigned
long
flags
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
list_del
(
&
cs
->
list
);
list_del
(
&
cs
->
list
);
if
(
clocksource_override
==
cs
)
if
(
clocksource_override
==
cs
)
clocksource_override
=
NULL
;
clocksource_override
=
NULL
;
next_clocksource
=
select_clocksource
();
next_clocksource
=
select_clocksource
();
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
}
}
#ifdef CONFIG_SYSFS
#ifdef CONFIG_SYSFS
...
@@ -458,9 +458,9 @@ sysfs_show_current_clocksources(struct sys_device *dev,
...
@@ -458,9 +458,9 @@ sysfs_show_current_clocksources(struct sys_device *dev,
{
{
ssize_t
count
=
0
;
ssize_t
count
=
0
;
spin_lock_irq
(
&
clocksource_lock
);
atomic_
spin_lock_irq
(
&
clocksource_lock
);
count
=
snprintf
(
buf
,
PAGE_SIZE
,
"%s
\n
"
,
curr_clocksource
->
name
);
count
=
snprintf
(
buf
,
PAGE_SIZE
,
"%s
\n
"
,
curr_clocksource
->
name
);
spin_unlock_irq
(
&
clocksource_lock
);
atomic_
spin_unlock_irq
(
&
clocksource_lock
);
return
count
;
return
count
;
}
}
...
@@ -490,7 +490,7 @@ static ssize_t sysfs_override_clocksource(struct sys_device *dev,
...
@@ -490,7 +490,7 @@ static ssize_t sysfs_override_clocksource(struct sys_device *dev,
if
(
buf
[
count
-
1
]
==
'\n'
)
if
(
buf
[
count
-
1
]
==
'\n'
)
count
--
;
count
--
;
spin_lock_irq
(
&
clocksource_lock
);
atomic_
spin_lock_irq
(
&
clocksource_lock
);
if
(
count
>
0
)
if
(
count
>
0
)
memcpy
(
override_name
,
buf
,
count
);
memcpy
(
override_name
,
buf
,
count
);
...
@@ -527,7 +527,7 @@ static ssize_t sysfs_override_clocksource(struct sys_device *dev,
...
@@ -527,7 +527,7 @@ static ssize_t sysfs_override_clocksource(struct sys_device *dev,
next_clocksource
=
select_clocksource
();
next_clocksource
=
select_clocksource
();
}
}
spin_unlock_irq
(
&
clocksource_lock
);
atomic_
spin_unlock_irq
(
&
clocksource_lock
);
return
ret
;
return
ret
;
}
}
...
@@ -547,7 +547,7 @@ sysfs_show_available_clocksources(struct sys_device *dev,
...
@@ -547,7 +547,7 @@ sysfs_show_available_clocksources(struct sys_device *dev,
struct
clocksource
*
src
;
struct
clocksource
*
src
;
ssize_t
count
=
0
;
ssize_t
count
=
0
;
spin_lock_irq
(
&
clocksource_lock
);
atomic_
spin_lock_irq
(
&
clocksource_lock
);
list_for_each_entry
(
src
,
&
clocksource_list
,
list
)
{
list_for_each_entry
(
src
,
&
clocksource_list
,
list
)
{
/*
/*
* Don't show non-HRES clocksource if the tick code is
* Don't show non-HRES clocksource if the tick code is
...
@@ -559,7 +559,7 @@ sysfs_show_available_clocksources(struct sys_device *dev,
...
@@ -559,7 +559,7 @@ sysfs_show_available_clocksources(struct sys_device *dev,
max
((
ssize_t
)
PAGE_SIZE
-
count
,
(
ssize_t
)
0
),
max
((
ssize_t
)
PAGE_SIZE
-
count
,
(
ssize_t
)
0
),
"%s "
,
src
->
name
);
"%s "
,
src
->
name
);
}
}
spin_unlock_irq
(
&
clocksource_lock
);
atomic_
spin_unlock_irq
(
&
clocksource_lock
);
count
+=
snprintf
(
buf
+
count
,
count
+=
snprintf
(
buf
+
count
,
max
((
ssize_t
)
PAGE_SIZE
-
count
,
(
ssize_t
)
0
),
"
\n
"
);
max
((
ssize_t
)
PAGE_SIZE
-
count
,
(
ssize_t
)
0
),
"
\n
"
);
...
@@ -615,10 +615,10 @@ device_initcall(init_clocksource_sysfs);
...
@@ -615,10 +615,10 @@ device_initcall(init_clocksource_sysfs);
static
int
__init
boot_override_clocksource
(
char
*
str
)
static
int
__init
boot_override_clocksource
(
char
*
str
)
{
{
unsigned
long
flags
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
clocksource_lock
,
flags
);
if
(
str
)
if
(
str
)
strlcpy
(
override_name
,
str
,
sizeof
(
override_name
));
strlcpy
(
override_name
,
str
,
sizeof
(
override_name
));
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
clocksource_lock
,
flags
);
return
1
;
return
1
;
}
}
...
...
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