lkml.org 
[lkml]   [2006]   [Mar]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch] s390: channel path measurements fixups.
[patch] s390: channel path measurements fixups.

- Don't inline __chsc_do_secm().
- Use direct initialization instead of struct initializers for
chsc_header. gcc generates better code that way.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
CC: Martin Schwidefsky <schwidefsky@de.ibm.com>

chsc.c | 44 +++++++++++++++-----------------------------
1 file changed, 15 insertions(+), 29 deletions(-)

diff -Naurp linux-2.6.16-mm1/drivers/s390/cio/chsc.c linux-2.6.16-mm1+CH/drivers/s390/cio/chsc.c
--- linux-2.6.16-mm1/drivers/s390/cio/chsc.c 2006-03-23 11:01:03.000000000 +0100
+++ linux-2.6.16-mm1+CH/drivers/s390/cio/chsc.c 2006-03-23 11:01:37.000000000 +0100
@@ -98,10 +98,8 @@ chsc_get_sch_desc_irq(struct subchannel

ssd_area = page;

- ssd_area->request = (struct chsc_header) {
- .length = 0x0010,
- .code = 0x0004,
- };
+ ssd_area->request.length = 0x0010;
+ ssd_area->request.code = 0x0004;

ssd_area->ssid = sch->schid.ssid;
ssd_area->f_sch = sch->schid.sch_no;
@@ -517,10 +515,8 @@ chsc_process_crw(void)
struct device *dev;
memset(sei_area, 0, sizeof(*sei_area));
memset(&res_data, 0, sizeof(struct res_acc_data));
- sei_area->request = (struct chsc_header) {
- .length = 0x0010,
- .code = 0x000e,
- };
+ sei_area->request.length = 0x0010;
+ sei_area->request.code = 0x000e;

ccode = chsc(sei_area);
if (ccode > 0)
@@ -1018,7 +1014,7 @@ cleanup:
}


-static inline int
+static int
__chsc_do_secm(struct channel_subsystem *css, int enable, void *page)
{
struct {
@@ -1041,10 +1037,8 @@ __chsc_do_secm(struct channel_subsystem
int ret, ccode;

secm_area = page;
- secm_area->request = (struct chsc_header) {
- .length = 0x0050,
- .code = 0x0016,
- };
+ secm_area->request.length = 0x0050;
+ secm_area->request.code = 0x0016;

secm_area->key = PAGE_DEFAULT_KEY;
secm_area->cub_addr1 = (u64)(unsigned long)css->cub_addr1;
@@ -1256,10 +1250,8 @@ chsc_determine_channel_path_description(
if (!scpd_area)
return -ENOMEM;

- scpd_area->request = (struct chsc_header) {
- .length = 0x0010,
- .code = 0x0002,
- };
+ scpd_area->request.length = 0x0010;
+ scpd_area->request.code = 0x0002;

scpd_area->first_chpid = chpid;
scpd_area->last_chpid = chpid;
@@ -1355,10 +1347,8 @@ chsc_get_channel_measurement_chars(struc
if (!scmc_area)
return -ENOMEM;

- scmc_area->request = (struct chsc_header) {
- .length = 0x0010,
- .code = 0x0022,
- };
+ scmc_area->request.length = 0x0010;
+ scmc_area->request.code = 0x0022;

scmc_area->first_chpid = chp->id;
scmc_area->last_chpid = chp->id;
@@ -1526,10 +1516,8 @@ chsc_enable_facility(int operation_code)
sda_area = (void *)get_zeroed_page(GFP_KERNEL|GFP_DMA);
if (!sda_area)
return -ENOMEM;
- sda_area->request = (struct chsc_header) {
- .length = 0x0400,
- .code = 0x0031,
- };
+ sda_area->request.length = 0x0400;
+ sda_area->request.code = 0x0031;
sda_area->operation_code = operation_code;

ret = chsc(sda_area);
@@ -1584,10 +1572,8 @@ chsc_determine_css_characteristics(void)
return -ENOMEM;
}

- scsc_area->request = (struct chsc_header) {
- .length = 0x0010,
- .code = 0x0010,
- };
+ scsc_area->request.length = 0x0010;
+ scsc_area->request.code = 0x0010;

result = chsc(scsc_area);
if (result) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2006-03-23 11:22    [W:0.408 / U:0.120 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site