diff options
author | Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 2007-02-05 15:17:40 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-02-05 15:17:40 -0500 |
commit | 0f008aa300f1a48144a1b988a85db9d330f884b7 (patch) | |
tree | 521a14d537b988a7b419be70c50c0b875cc35fd2 /drivers/s390/cio | |
parent | 9b241cc862d55038c43feee86670cb7d86cf01c1 (diff) |
[S390] cio: declare hardware structures packed.
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r-- | drivers/s390/cio/chsc.c | 16 | ||||
-rw-r--r-- | drivers/s390/cio/chsc.h | 8 |
2 files changed, 12 insertions, 12 deletions
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index 514daeaba705..0260f12231e0 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c | |||
@@ -93,7 +93,7 @@ chsc_get_sch_desc_irq(struct subchannel *sch, void *page) | |||
93 | u16 sch; /* subchannel */ | 93 | u16 sch; /* subchannel */ |
94 | u8 chpid[8]; /* chpids 0-7 */ | 94 | u8 chpid[8]; /* chpids 0-7 */ |
95 | u16 fla[8]; /* full link addresses 0-7 */ | 95 | u16 fla[8]; /* full link addresses 0-7 */ |
96 | } *ssd_area; | 96 | } __attribute__ ((packed)) *ssd_area; |
97 | 97 | ||
98 | ssd_area = page; | 98 | ssd_area = page; |
99 | 99 | ||
@@ -444,7 +444,7 @@ __get_chpid_from_lir(void *data) | |||
444 | u32 andesc[28]; | 444 | u32 andesc[28]; |
445 | /* incident-specific information */ | 445 | /* incident-specific information */ |
446 | u32 isinfo[28]; | 446 | u32 isinfo[28]; |
447 | } *lir; | 447 | } __attribute__ ((packed)) *lir; |
448 | 448 | ||
449 | lir = data; | 449 | lir = data; |
450 | if (!(lir->iq&0x80)) | 450 | if (!(lir->iq&0x80)) |
@@ -483,7 +483,7 @@ chsc_process_crw(void) | |||
483 | u32 reserved6; | 483 | u32 reserved6; |
484 | u32 ccdf[96]; /* content-code dependent field */ | 484 | u32 ccdf[96]; /* content-code dependent field */ |
485 | /* ccdf has to be big enough for a link-incident record */ | 485 | /* ccdf has to be big enough for a link-incident record */ |
486 | } *sei_area; | 486 | } __attribute__ ((packed)) *sei_area; |
487 | 487 | ||
488 | if (!sei_page) | 488 | if (!sei_page) |
489 | return 0; | 489 | return 0; |
@@ -1040,7 +1040,7 @@ __chsc_do_secm(struct channel_subsystem *css, int enable, void *page) | |||
1040 | u32 : 4; | 1040 | u32 : 4; |
1041 | u32 fmt : 4; | 1041 | u32 fmt : 4; |
1042 | u32 : 16; | 1042 | u32 : 16; |
1043 | } *secm_area; | 1043 | } __attribute__ ((packed)) *secm_area; |
1044 | int ret, ccode; | 1044 | int ret, ccode; |
1045 | 1045 | ||
1046 | secm_area = page; | 1046 | secm_area = page; |
@@ -1251,7 +1251,7 @@ chsc_determine_channel_path_description(int chpid, | |||
1251 | struct chsc_header response; | 1251 | struct chsc_header response; |
1252 | u32 zeroes2; | 1252 | u32 zeroes2; |
1253 | struct channel_path_desc desc; | 1253 | struct channel_path_desc desc; |
1254 | } *scpd_area; | 1254 | } __attribute__ ((packed)) *scpd_area; |
1255 | 1255 | ||
1256 | scpd_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); | 1256 | scpd_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); |
1257 | if (!scpd_area) | 1257 | if (!scpd_area) |
@@ -1348,7 +1348,7 @@ chsc_get_channel_measurement_chars(struct channel_path *chp) | |||
1348 | u32 cmg : 8; | 1348 | u32 cmg : 8; |
1349 | u32 zeroes3; | 1349 | u32 zeroes3; |
1350 | u32 data[NR_MEASUREMENT_CHARS]; | 1350 | u32 data[NR_MEASUREMENT_CHARS]; |
1351 | } *scmc_area; | 1351 | } __attribute__ ((packed)) *scmc_area; |
1352 | 1352 | ||
1353 | scmc_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); | 1353 | scmc_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); |
1354 | if (!scmc_area) | 1354 | if (!scmc_area) |
@@ -1515,7 +1515,7 @@ chsc_enable_facility(int operation_code) | |||
1515 | u32 reserved5:4; | 1515 | u32 reserved5:4; |
1516 | u32 format2:4; | 1516 | u32 format2:4; |
1517 | u32 reserved6:24; | 1517 | u32 reserved6:24; |
1518 | } *sda_area; | 1518 | } __attribute__ ((packed)) *sda_area; |
1519 | 1519 | ||
1520 | sda_area = (void *)get_zeroed_page(GFP_KERNEL|GFP_DMA); | 1520 | sda_area = (void *)get_zeroed_page(GFP_KERNEL|GFP_DMA); |
1521 | if (!sda_area) | 1521 | if (!sda_area) |
@@ -1567,7 +1567,7 @@ chsc_determine_css_characteristics(void) | |||
1567 | u32 reserved4; | 1567 | u32 reserved4; |
1568 | u32 general_char[510]; | 1568 | u32 general_char[510]; |
1569 | u32 chsc_char[518]; | 1569 | u32 chsc_char[518]; |
1570 | } *scsc_area; | 1570 | } __attribute__ ((packed)) *scsc_area; |
1571 | 1571 | ||
1572 | scsc_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); | 1572 | scsc_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); |
1573 | if (!scsc_area) { | 1573 | if (!scsc_area) { |
diff --git a/drivers/s390/cio/chsc.h b/drivers/s390/cio/chsc.h index 3e8ac8f7b5cd..0fb2b024208f 100644 --- a/drivers/s390/cio/chsc.h +++ b/drivers/s390/cio/chsc.h | |||
@@ -10,17 +10,17 @@ | |||
10 | struct chsc_header { | 10 | struct chsc_header { |
11 | u16 length; | 11 | u16 length; |
12 | u16 code; | 12 | u16 code; |
13 | }; | 13 | } __attribute__ ((packed)); |
14 | 14 | ||
15 | #define NR_MEASUREMENT_CHARS 5 | 15 | #define NR_MEASUREMENT_CHARS 5 |
16 | struct cmg_chars { | 16 | struct cmg_chars { |
17 | u32 values[NR_MEASUREMENT_CHARS]; | 17 | u32 values[NR_MEASUREMENT_CHARS]; |
18 | }; | 18 | } __attribute__ ((packed)); |
19 | 19 | ||
20 | #define NR_MEASUREMENT_ENTRIES 8 | 20 | #define NR_MEASUREMENT_ENTRIES 8 |
21 | struct cmg_entry { | 21 | struct cmg_entry { |
22 | u32 values[NR_MEASUREMENT_ENTRIES]; | 22 | u32 values[NR_MEASUREMENT_ENTRIES]; |
23 | }; | 23 | } __attribute__ ((packed)); |
24 | 24 | ||
25 | struct channel_path_desc { | 25 | struct channel_path_desc { |
26 | u8 flags; | 26 | u8 flags; |
@@ -31,7 +31,7 @@ struct channel_path_desc { | |||
31 | u8 zeroes; | 31 | u8 zeroes; |
32 | u8 chla; | 32 | u8 chla; |
33 | u8 chpp; | 33 | u8 chpp; |
34 | }; | 34 | } __attribute__ ((packed)); |
35 | 35 | ||
36 | struct channel_path { | 36 | struct channel_path { |
37 | int id; | 37 | int id; |