hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/arch/s390/include/asm/appldata.h
....@@ -40,26 +40,27 @@
4040 u16 mod_lvl; /* modification level */
4141 } __attribute__ ((packed));
4242
43
-static inline int appldata_asm(struct appldata_product_id *id,
43
+
44
+static inline int appldata_asm(struct appldata_parameter_list *parm_list,
45
+ struct appldata_product_id *id,
4446 unsigned short fn, void *buffer,
4547 unsigned short length)
4648 {
47
- struct appldata_parameter_list parm_list;
4849 int ry;
4950
5051 if (!MACHINE_IS_VM)
5152 return -EOPNOTSUPP;
52
- parm_list.diag = 0xdc;
53
- parm_list.function = fn;
54
- parm_list.parlist_length = sizeof(parm_list);
55
- parm_list.buffer_length = length;
56
- parm_list.product_id_addr = (unsigned long) id;
57
- parm_list.buffer_addr = virt_to_phys(buffer);
53
+ parm_list->diag = 0xdc;
54
+ parm_list->function = fn;
55
+ parm_list->parlist_length = sizeof(*parm_list);
56
+ parm_list->buffer_length = length;
57
+ parm_list->product_id_addr = (unsigned long) id;
58
+ parm_list->buffer_addr = virt_to_phys(buffer);
5859 diag_stat_inc(DIAG_STAT_X0DC);
5960 asm volatile(
6061 " diag %1,%0,0xdc"
6162 : "=d" (ry)
62
- : "d" (&parm_list), "m" (parm_list), "m" (*id)
63
+ : "d" (parm_list), "m" (*parm_list), "m" (*id)
6364 : "cc");
6465 return ry;
6566 }