Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
223ddcea
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
223ddcea
编写于
8月 16, 2006
作者:
G
Greg Kroah-Hartman
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-linus' of
git://git390.osdl.marist.edu/pub/scm/linux-2.6
上级
ca412cc9
3e03a2fc
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
50 addition
and
77 deletion
+50
-77
arch/s390/appldata/appldata_base.c
arch/s390/appldata/appldata_base.c
+1
-1
arch/s390/mm/init.c
arch/s390/mm/init.c
+3
-3
drivers/s390/block/dasd.c
drivers/s390/block/dasd.c
+1
-1
drivers/s390/block/dasd_devmap.c
drivers/s390/block/dasd_devmap.c
+40
-44
drivers/s390/block/dasd_eckd.c
drivers/s390/block/dasd_eckd.c
+4
-4
drivers/s390/block/xpram.c
drivers/s390/block/xpram.c
+1
-24
未找到文件。
arch/s390/appldata/appldata_base.c
浏览文件 @
223ddcea
...
...
@@ -618,7 +618,7 @@ appldata_offline_cpu(int cpu)
}
#ifdef CONFIG_HOTPLUG_CPU
static
int
static
int
__cpuinit
appldata_cpu_notify
(
struct
notifier_block
*
self
,
unsigned
long
action
,
void
*
hcpu
)
{
...
...
arch/s390/mm/init.c
浏览文件 @
223ddcea
...
...
@@ -129,7 +129,7 @@ void __init paging_init(void)
/*
* pg_table is physical at this point
*/
pg_table
=
(
pte_t
*
)
alloc_bootmem_
low_
pages
(
PAGE_SIZE
);
pg_table
=
(
pte_t
*
)
alloc_bootmem_pages
(
PAGE_SIZE
);
pg_dir
->
pgd0
=
(
_PAGE_TABLE
|
__pa
(
pg_table
));
pg_dir
->
pgd1
=
(
_PAGE_TABLE
|
(
__pa
(
pg_table
)
+
1024
));
...
...
@@ -219,7 +219,7 @@ void __init paging_init(void)
continue
;
}
pm_dir
=
(
pmd_t
*
)
alloc_bootmem_low_pages
(
PAGE_SIZE
*
4
);
pm_dir
=
(
pmd_t
*
)
alloc_bootmem_pages
(
PAGE_SIZE
*
4
);
pgd_populate
(
&
init_mm
,
pg_dir
,
pm_dir
);
for
(
j
=
0
;
j
<
PTRS_PER_PMD
;
j
++
,
pm_dir
++
)
{
...
...
@@ -228,7 +228,7 @@ void __init paging_init(void)
continue
;
}
pt_dir
=
(
pte_t
*
)
alloc_bootmem_low
_pages
(
PAGE_SIZE
);
pt_dir
=
(
pte_t
*
)
alloc_bootmem
_pages
(
PAGE_SIZE
);
pmd_populate_kernel
(
&
init_mm
,
pm_dir
,
pt_dir
);
for
(
k
=
0
;
k
<
PTRS_PER_PTE
;
k
++
,
pt_dir
++
)
{
...
...
drivers/s390/block/dasd.c
浏览文件 @
223ddcea
...
...
@@ -1730,8 +1730,8 @@ dasd_flush_request_queue(struct dasd_device * device)
req
=
elv_next_request
(
device
->
request_queue
);
if
(
req
==
NULL
)
break
;
dasd_end_request
(
req
,
0
);
blkdev_dequeue_request
(
req
);
dasd_end_request
(
req
,
0
);
}
spin_unlock_irq
(
&
device
->
request_queue_lock
);
}
...
...
drivers/s390/block/dasd_devmap.c
浏览文件 @
223ddcea
...
...
@@ -48,18 +48,20 @@ struct dasd_devmap {
};
/*
* dasd_servermap is used to store the server_id of all storage servers
* accessed by DASD device driver.
* dasd_server_ssid_map contains a globally unique storage server subsystem ID.
* dasd_server_ssid_list contains the list of all subsystem IDs accessed by
* the DASD device driver.
*/
struct
dasd_servermap
{
struct
dasd_server
_ssid_
map
{
struct
list_head
list
;
struct
server_id
{
char
vendor
[
4
];
char
serial
[
15
];
}
sid
;
__u16
ssid
;
};
static
struct
list_head
dasd_serverlist
;
static
struct
list_head
dasd_server
_ssid_
list
;
/*
* Parameter parsing functions for dasd= parameter. The syntax is:
...
...
@@ -89,7 +91,7 @@ static char *dasd[256];
module_param_array
(
dasd
,
charp
,
NULL
,
0
);
/*
* Single spinlock to protect devmap structures and lists.
* Single spinlock to protect devmap
and servermap
structures and lists.
*/
static
DEFINE_SPINLOCK
(
dasd_devmap_lock
);
...
...
@@ -264,8 +266,9 @@ dasd_parse_keyword( char *parsestring ) {
if
(
dasd_page_cache
)
return
residual_str
;
dasd_page_cache
=
kmem_cache_create
(
"dasd_page_cache"
,
PAGE_SIZE
,
0
,
SLAB_CACHE_DMA
,
NULL
,
NULL
);
kmem_cache_create
(
"dasd_page_cache"
,
PAGE_SIZE
,
PAGE_SIZE
,
SLAB_CACHE_DMA
,
NULL
,
NULL
);
if
(
!
dasd_page_cache
)
MESSAGE
(
KERN_WARNING
,
"%s"
,
"Failed to create slab, "
"fixed buffer mode disabled."
);
...
...
@@ -858,39 +861,6 @@ static struct attribute_group dasd_attr_group = {
.
attrs
=
dasd_attrs
,
};
/*
* Check if the related storage server is already contained in the
* dasd_serverlist. If server is not contained, create new entry.
* Return 0 if server was already in serverlist,
* 1 if the server was added successfully
* <0 in case of error.
*/
static
int
dasd_add_server
(
struct
dasd_uid
*
uid
)
{
struct
dasd_servermap
*
new
,
*
tmp
;
/* check if server is already contained */
list_for_each_entry
(
tmp
,
&
dasd_serverlist
,
list
)
// normale cmp?
if
(
strncmp
(
tmp
->
sid
.
vendor
,
uid
->
vendor
,
sizeof
(
tmp
->
sid
.
vendor
))
==
0
&&
strncmp
(
tmp
->
sid
.
serial
,
uid
->
serial
,
sizeof
(
tmp
->
sid
.
serial
))
==
0
)
return
0
;
new
=
(
struct
dasd_servermap
*
)
kzalloc
(
sizeof
(
struct
dasd_servermap
),
GFP_KERNEL
);
if
(
!
new
)
return
-
ENOMEM
;
strncpy
(
new
->
sid
.
vendor
,
uid
->
vendor
,
sizeof
(
new
->
sid
.
vendor
));
strncpy
(
new
->
sid
.
serial
,
uid
->
serial
,
sizeof
(
new
->
sid
.
serial
));
list_add
(
&
new
->
list
,
&
dasd_serverlist
);
return
1
;
}
/*
* Return copy of the device unique identifier.
*/
...
...
@@ -910,6 +880,9 @@ dasd_get_uid(struct ccw_device *cdev, struct dasd_uid *uid)
/*
* Register the given device unique identifier into devmap struct.
* In addition check if the related storage server subsystem ID is already
* contained in the dasd_server_ssid_list. If subsystem ID is not contained,
* create new entry.
* Return 0 if server was already in serverlist,
* 1 if the server was added successful
* <0 in case of error.
...
...
@@ -918,16 +891,39 @@ int
dasd_set_uid
(
struct
ccw_device
*
cdev
,
struct
dasd_uid
*
uid
)
{
struct
dasd_devmap
*
devmap
;
int
rc
;
struct
dasd_server_ssid_map
*
srv
,
*
tmp
;
devmap
=
dasd_find_busid
(
cdev
->
dev
.
bus_id
);
if
(
IS_ERR
(
devmap
))
return
PTR_ERR
(
devmap
);
/* generate entry for server_ssid_map */
srv
=
(
struct
dasd_server_ssid_map
*
)
kzalloc
(
sizeof
(
struct
dasd_server_ssid_map
),
GFP_KERNEL
);
if
(
!
srv
)
return
-
ENOMEM
;
strncpy
(
srv
->
sid
.
vendor
,
uid
->
vendor
,
sizeof
(
srv
->
sid
.
vendor
)
-
1
);
strncpy
(
srv
->
sid
.
serial
,
uid
->
serial
,
sizeof
(
srv
->
sid
.
serial
)
-
1
);
srv
->
ssid
=
uid
->
ssid
;
/* server is already contained ? */
spin_lock
(
&
dasd_devmap_lock
);
devmap
->
uid
=
*
uid
;
rc
=
dasd_add_server
(
uid
);
list_for_each_entry
(
tmp
,
&
dasd_server_ssid_list
,
list
)
{
if
(
!
memcmp
(
&
srv
->
sid
,
&
tmp
->
sid
,
sizeof
(
struct
dasd_server_ssid_map
)))
{
kfree
(
srv
);
srv
=
NULL
;
break
;
}
}
/* add servermap to serverlist */
if
(
srv
)
list_add
(
&
srv
->
list
,
&
dasd_server_ssid_list
);
spin_unlock
(
&
dasd_devmap_lock
);
return
rc
;
return
(
srv
?
1
:
0
);
}
EXPORT_SYMBOL_GPL
(
dasd_set_uid
);
...
...
@@ -995,7 +991,7 @@ dasd_devmap_init(void)
INIT_LIST_HEAD
(
&
dasd_hashlists
[
i
]);
/* Initialize servermap structure. */
INIT_LIST_HEAD
(
&
dasd_serverlist
);
INIT_LIST_HEAD
(
&
dasd_server
_ssid_
list
);
return
0
;
}
...
...
drivers/s390/block/dasd_eckd.c
浏览文件 @
223ddcea
...
...
@@ -468,11 +468,11 @@ dasd_eckd_generate_uid(struct dasd_device *device, struct dasd_uid *uid)
return
-
ENODEV
;
memset
(
uid
,
0
,
sizeof
(
struct
dasd_uid
));
strn
cpy
(
uid
->
vendor
,
confdata
->
ned1
.
HDA_manufacturer
,
sizeof
(
uid
->
vendor
)
-
1
);
mem
cpy
(
uid
->
vendor
,
confdata
->
ned1
.
HDA_manufacturer
,
sizeof
(
uid
->
vendor
)
-
1
);
EBCASC
(
uid
->
vendor
,
sizeof
(
uid
->
vendor
)
-
1
);
strn
cpy
(
uid
->
serial
,
confdata
->
ned1
.
HDA_location
,
sizeof
(
uid
->
serial
)
-
1
);
mem
cpy
(
uid
->
serial
,
confdata
->
ned1
.
HDA_location
,
sizeof
(
uid
->
serial
)
-
1
);
EBCASC
(
uid
->
serial
,
sizeof
(
uid
->
serial
)
-
1
);
uid
->
ssid
=
confdata
->
neq
.
subsystemID
;
if
(
confdata
->
ned2
.
sneq
.
flags
==
0x40
)
{
...
...
drivers/s390/block/xpram.c
浏览文件 @
223ddcea
...
...
@@ -48,15 +48,6 @@
#define PRINT_ERR(x...) printk(KERN_ERR XPRAM_NAME " error:" x)
static
struct
sysdev_class
xpram_sysclass
=
{
set_kset_name
(
"xpram"
),
};
static
struct
sys_device
xpram_sys_device
=
{
.
id
=
0
,
.
cls
=
&
xpram_sysclass
,
};
typedef
struct
{
unsigned
int
size
;
/* size of xpram segment in pages */
unsigned
int
offset
;
/* start page of xpram segment */
...
...
@@ -451,8 +442,6 @@ static void __exit xpram_exit(void)
}
unregister_blkdev
(
XPRAM_MAJOR
,
XPRAM_NAME
);
blk_cleanup_queue
(
xpram_queue
);
sysdev_unregister
(
&
xpram_sys_device
);
sysdev_class_unregister
(
&
xpram_sysclass
);
}
static
int
__init
xpram_init
(
void
)
...
...
@@ -470,19 +459,7 @@ static int __init xpram_init(void)
rc
=
xpram_setup_sizes
(
xpram_pages
);
if
(
rc
)
return
rc
;
rc
=
sysdev_class_register
(
&
xpram_sysclass
);
if
(
rc
)
return
rc
;
rc
=
sysdev_register
(
&
xpram_sys_device
);
if
(
rc
)
{
sysdev_class_unregister
(
&
xpram_sysclass
);
return
rc
;
}
rc
=
xpram_setup_blkdev
();
if
(
rc
)
sysdev_unregister
(
&
xpram_sys_device
);
return
rc
;
return
xpram_setup_blkdev
();
}
module_init
(
xpram_init
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录