From 5e6c20a93b700ba884a6bced498b2691e2dd821b Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Tue, 17 Jul 2007 04:04:22 -0700 Subject: [PATCH] isdn/capi warning fixes drivers/isdn/capi/capi.c: In function 'handle_minor_send': drivers/isdn/capi/capi.c:552: warning: cast from pointer to integer of different size Of course, the code here might actually be buggy, in which case this patch should not be applied? Answer: No this field is ignored inside linux kernel.Yes this is ugly, but it's the CAPI spec for all OS. CAPI DATA_B3 Request/Indication CAPI Message has a mandatory field which represent the 32 bit buffer address of the payload data. In linux the payload data do not use a sperate buffer, data follows directely after the CAPI Message in the same skb and we use this assumption inside the drivers, so we can ignore this field. Inside the linux CAPI implemetation we never use this field, so it could also have no value, but since random data in a message is bad as well (e.g. displayed in CAPI traces) we set is to the most adequate value. Outside the kernel the capi20 library sets the correct addresses (there is an optional second field for 64 bit adresses for 64 bit systems, we do not use here). Acked-by: Karsten Keil Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/isdn/capi/capi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index 81661b8bd3..f449daef3e 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c @@ -549,7 +549,7 @@ static int handle_minor_send(struct capiminor *mp) capimsg_setu8 (skb->data, 5, CAPI_REQ); capimsg_setu16(skb->data, 6, mp->msgid++); capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */ - capimsg_setu32(skb->data, 12, (u32) skb->data); /* Data32 */ + capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */ capimsg_setu16(skb->data, 16, len); /* Data length */ capimsg_setu16(skb->data, 18, datahandle); capimsg_setu16(skb->data, 20, 0); /* Flags */ -- 2.39.5