Skip to content

Commit 2aca9ea

Browse files
committed
s390/iucv: use new address translation helpers
Use virt_to_dma32() and friends to properly convert virtual to physical and physical to virtual addresses so that "make C=1" does not generate any warnings anymore. Signed-off-by: Heiko Carstens <[email protected]>
1 parent 6b9875a commit 2aca9ea

File tree

3 files changed

+17
-16
lines changed

3 files changed

+17
-16
lines changed

include/net/iucv/iucv.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
#include <linux/types.h>
3232
#include <linux/slab.h>
33+
#include <asm/dma-types.h>
3334
#include <asm/debug.h>
3435

3536
/*
@@ -76,7 +77,7 @@
7677
* and iucv_message_reply if IUCV_IPBUFLST or IUCV_IPANSLST are used.
7778
*/
7879
struct iucv_array {
79-
u32 address;
80+
dma32_t address;
8081
u32 length;
8182
} __attribute__ ((aligned (8)));
8283

net/iucv/af_iucv.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1060,12 +1060,12 @@ static int iucv_sock_sendmsg(struct socket *sock, struct msghdr *msg,
10601060
int i;
10611061

10621062
/* skip iucv_array lying in the headroom */
1063-
iba[0].address = (u32)virt_to_phys(skb->data);
1063+
iba[0].address = virt_to_dma32(skb->data);
10641064
iba[0].length = (u32)skb_headlen(skb);
10651065
for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
10661066
skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
10671067

1068-
iba[i + 1].address = (u32)virt_to_phys(skb_frag_address(frag));
1068+
iba[i + 1].address = virt_to_dma32(skb_frag_address(frag));
10691069
iba[i + 1].length = (u32)skb_frag_size(frag);
10701070
}
10711071
err = pr_iucv->message_send(iucv->path, &txmsg,
@@ -1161,12 +1161,12 @@ static void iucv_process_message(struct sock *sk, struct sk_buff *skb,
11611161
struct iucv_array *iba = (struct iucv_array *)skb->head;
11621162
int i;
11631163

1164-
iba[0].address = (u32)virt_to_phys(skb->data);
1164+
iba[0].address = virt_to_dma32(skb->data);
11651165
iba[0].length = (u32)skb_headlen(skb);
11661166
for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
11671167
skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
11681168

1169-
iba[i + 1].address = (u32)virt_to_phys(skb_frag_address(frag));
1169+
iba[i + 1].address = virt_to_dma32(skb_frag_address(frag));
11701170
iba[i + 1].length = (u32)skb_frag_size(frag);
11711171
}
11721172
rc = pr_iucv->message_receive(path, msg,

net/iucv/iucv.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ struct iucv_cmd_dpl {
210210
u8 iprmmsg[8];
211211
u32 ipsrccls;
212212
u32 ipmsgtag;
213-
u32 ipbfadr2;
213+
dma32_t ipbfadr2;
214214
u32 ipbfln2f;
215215
u32 res;
216216
} __attribute__ ((packed,aligned(8)));
@@ -226,11 +226,11 @@ struct iucv_cmd_db {
226226
u8 iprcode;
227227
u32 ipmsgid;
228228
u32 iptrgcls;
229-
u32 ipbfadr1;
229+
dma32_t ipbfadr1;
230230
u32 ipbfln1f;
231231
u32 ipsrccls;
232232
u32 ipmsgtag;
233-
u32 ipbfadr2;
233+
dma32_t ipbfadr2;
234234
u32 ipbfln2f;
235235
u32 res;
236236
} __attribute__ ((packed,aligned(8)));
@@ -432,7 +432,7 @@ static void iucv_declare_cpu(void *data)
432432
/* Declare interrupt buffer. */
433433
parm = iucv_param_irq[cpu];
434434
memset(parm, 0, sizeof(union iucv_param));
435-
parm->db.ipbfadr1 = virt_to_phys(iucv_irq_data[cpu]);
435+
parm->db.ipbfadr1 = virt_to_dma32(iucv_irq_data[cpu]);
436436
rc = iucv_call_b2f0(IUCV_DECLARE_BUFFER, parm);
437437
if (rc) {
438438
char *err = "Unknown";
@@ -1081,7 +1081,7 @@ static int iucv_message_receive_iprmdata(struct iucv_path *path,
10811081
size = (size < 8) ? size : 8;
10821082
for (array = buffer; size > 0; array++) {
10831083
copy = min_t(size_t, size, array->length);
1084-
memcpy(phys_to_virt(array->address), rmmsg, copy);
1084+
memcpy(dma32_to_virt(array->address), rmmsg, copy);
10851085
rmmsg += copy;
10861086
size -= copy;
10871087
}
@@ -1123,7 +1123,7 @@ int __iucv_message_receive(struct iucv_path *path, struct iucv_message *msg,
11231123

11241124
parm = iucv_param[smp_processor_id()];
11251125
memset(parm, 0, sizeof(union iucv_param));
1126-
parm->db.ipbfadr1 = (u32)virt_to_phys(buffer);
1126+
parm->db.ipbfadr1 = virt_to_dma32(buffer);
11271127
parm->db.ipbfln1f = (u32) size;
11281128
parm->db.ipmsgid = msg->id;
11291129
parm->db.ippathid = path->pathid;
@@ -1241,7 +1241,7 @@ int iucv_message_reply(struct iucv_path *path, struct iucv_message *msg,
12411241
parm->dpl.iptrgcls = msg->class;
12421242
memcpy(parm->dpl.iprmmsg, reply, min_t(size_t, size, 8));
12431243
} else {
1244-
parm->db.ipbfadr1 = (u32)virt_to_phys(reply);
1244+
parm->db.ipbfadr1 = virt_to_dma32(reply);
12451245
parm->db.ipbfln1f = (u32) size;
12461246
parm->db.ippathid = path->pathid;
12471247
parm->db.ipflags1 = flags;
@@ -1293,7 +1293,7 @@ int __iucv_message_send(struct iucv_path *path, struct iucv_message *msg,
12931293
parm->dpl.ipmsgtag = msg->tag;
12941294
memcpy(parm->dpl.iprmmsg, buffer, 8);
12951295
} else {
1296-
parm->db.ipbfadr1 = (u32)virt_to_phys(buffer);
1296+
parm->db.ipbfadr1 = virt_to_dma32(buffer);
12971297
parm->db.ipbfln1f = (u32) size;
12981298
parm->db.ippathid = path->pathid;
12991299
parm->db.ipflags1 = flags | IUCV_IPNORPY;
@@ -1378,7 +1378,7 @@ int iucv_message_send2way(struct iucv_path *path, struct iucv_message *msg,
13781378
parm->dpl.iptrgcls = msg->class;
13791379
parm->dpl.ipsrccls = srccls;
13801380
parm->dpl.ipmsgtag = msg->tag;
1381-
parm->dpl.ipbfadr2 = (u32)virt_to_phys(answer);
1381+
parm->dpl.ipbfadr2 = virt_to_dma32(answer);
13821382
parm->dpl.ipbfln2f = (u32) asize;
13831383
memcpy(parm->dpl.iprmmsg, buffer, 8);
13841384
} else {
@@ -1387,9 +1387,9 @@ int iucv_message_send2way(struct iucv_path *path, struct iucv_message *msg,
13871387
parm->db.iptrgcls = msg->class;
13881388
parm->db.ipsrccls = srccls;
13891389
parm->db.ipmsgtag = msg->tag;
1390-
parm->db.ipbfadr1 = (u32)virt_to_phys(buffer);
1390+
parm->db.ipbfadr1 = virt_to_dma32(buffer);
13911391
parm->db.ipbfln1f = (u32) size;
1392-
parm->db.ipbfadr2 = (u32)virt_to_phys(answer);
1392+
parm->db.ipbfadr2 = virt_to_dma32(answer);
13931393
parm->db.ipbfln2f = (u32) asize;
13941394
}
13951395
rc = iucv_call_b2f0(IUCV_SEND, parm);

0 commit comments

Comments
 (0)