Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
4516c818
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4516c818
编写于
1月 05, 2010
作者:
D
Dmitry Torokhov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Input: serio - use list_first_entry() helper
Signed-off-by:
N
Dmitry Torokhov
<
dtor@mail.ru
>
上级
ddf1ffbd
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
20 deletion
+11
-20
drivers/input/serio/serio.c
drivers/input/serio/serio.c
+11
-20
未找到文件。
drivers/input/serio/serio.c
浏览文件 @
4516c818
...
...
@@ -230,14 +230,12 @@ static void serio_free_event(struct serio_event *event)
static
void
serio_remove_duplicate_events
(
struct
serio_event
*
event
)
{
struct
list_head
*
node
,
*
next
;
struct
serio_event
*
e
;
struct
serio_event
*
e
,
*
next
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
serio_event_lock
,
flags
);
list_for_each_safe
(
node
,
next
,
&
serio_event_list
)
{
e
=
list_entry
(
node
,
struct
serio_event
,
node
);
list_for_each_entry_safe
(
e
,
next
,
&
serio_event_list
,
node
)
{
if
(
event
->
object
==
e
->
object
)
{
/*
* If this event is of different type we should not
...
...
@@ -247,7 +245,7 @@ static void serio_remove_duplicate_events(struct serio_event *event)
if
(
event
->
type
!=
e
->
type
)
break
;
list_del_init
(
node
);
list_del_init
(
&
e
->
node
);
serio_free_event
(
e
);
}
}
...
...
@@ -258,23 +256,18 @@ static void serio_remove_duplicate_events(struct serio_event *event)
static
struct
serio_event
*
serio_get_event
(
void
)
{
struct
serio_event
*
event
;
struct
list_head
*
node
;
struct
serio_event
*
event
=
NULL
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
serio_event_lock
,
flags
);
if
(
list_empty
(
&
serio_event_list
))
{
spin_unlock_irqrestore
(
&
serio_event_lock
,
flags
);
return
NULL
;
if
(
!
list_empty
(
&
serio_event_list
))
{
event
=
list_first_entry
(
&
serio_event_list
,
struct
serio_event
,
node
);
list_del_init
(
&
event
->
node
);
}
node
=
serio_event_list
.
next
;
event
=
list_entry
(
node
,
struct
serio_event
,
node
);
list_del_init
(
node
);
spin_unlock_irqrestore
(
&
serio_event_lock
,
flags
);
return
event
;
}
...
...
@@ -331,16 +324,14 @@ static void serio_handle_event(void)
*/
static
void
serio_remove_pending_events
(
void
*
object
)
{
struct
list_head
*
node
,
*
next
;
struct
serio_event
*
event
;
struct
serio_event
*
event
,
*
next
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
serio_event_lock
,
flags
);
list_for_each_safe
(
node
,
next
,
&
serio_event_list
)
{
event
=
list_entry
(
node
,
struct
serio_event
,
node
);
list_for_each_entry_safe
(
event
,
next
,
&
serio_event_list
,
node
)
{
if
(
event
->
object
==
object
)
{
list_del_init
(
node
);
list_del_init
(
&
event
->
node
);
serio_free_event
(
event
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录