Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4df864c1 authored by Johannes Berg's avatar Johannes Berg Committed by David S. Miller
Browse files

networking: make skb_put & friends return void pointers



It seems like a historic accident that these return unsigned char *,
and in many places that means casts are required, more often than not.

Make these functions (skb_put, __skb_put and pskb_put) return void *
and remove all the casts across the tree, adding a (u8 *) cast only
where the unsigned char pointer was used directly, all done with the
following spatch:

    @@
    expression SKB, LEN;
    typedef u8;
    identifier fn = { skb_put, __skb_put };
    @@
    - *(fn(SKB, LEN))
    + *(u8 *)fn(SKB, LEN)

    @@
    expression E, SKB, LEN;
    identifier fn = { skb_put, __skb_put };
    type T;
    @@
    - E = ((T *)(fn(SKB, LEN)))
    + E = fn(SKB, LEN)

which actually doesn't cover pskb_put since there are only three
users overall.

A handful of stragglers were converted manually, notably a macro in
drivers/isdn/i4l/isdn_bsdcomp.c and, oddly enough, one of the many
instances in net/bluetooth/hci_sock.c. In the former file, I also
had to fix one whitespace problem spatch introduced.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 59ae1d12
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -60,7 +60,7 @@ static int atmtcp_send_control(struct atm_vcc *vcc,int type,
		return -EUNATCH;
		return -EUNATCH;
	}
	}
	atm_force_charge(out_vcc,skb->truesize);
	atm_force_charge(out_vcc,skb->truesize);
	new_msg = (struct atmtcp_control *) skb_put(skb,sizeof(*new_msg));
	new_msg = skb_put(skb, sizeof(*new_msg));
	*new_msg = *msg;
	*new_msg = *msg;
	new_msg->hdr.length = ATMTCP_HDR_MAGIC;
	new_msg->hdr.length = ATMTCP_HDR_MAGIC;
	new_msg->type = type;
	new_msg->type = type;
@@ -217,7 +217,7 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
		atomic_inc(&vcc->stats->tx_err);
		atomic_inc(&vcc->stats->tx_err);
		return -ENOBUFS;
		return -ENOBUFS;
	}
	}
	hdr = (void *) skb_put(new_skb,sizeof(struct atmtcp_hdr));
	hdr = skb_put(new_skb, sizeof(struct atmtcp_hdr));
	hdr->vpi = htons(vcc->vpi);
	hdr->vpi = htons(vcc->vpi);
	hdr->vci = htons(vcc->vci);
	hdr->vci = htons(vcc->vci);
	hdr->length = htonl(skb->len);
	hdr->length = htonl(skb->len);
+6 −6
Original line number Original line Diff line number Diff line
@@ -205,7 +205,7 @@ static ssize_t solos_param_show(struct device *dev, struct device_attribute *att
		return -ENOMEM;
		return -ENOMEM;
	}
	}


	header = (void *)skb_put(skb, sizeof(*header));
	header = skb_put(skb, sizeof(*header));


	buflen = snprintf((void *)&header[1], buflen - 1,
	buflen = snprintf((void *)&header[1], buflen - 1,
			  "L%05d\n%s\n", current->pid, attr->attr.name);
			  "L%05d\n%s\n", current->pid, attr->attr.name);
@@ -261,7 +261,7 @@ static ssize_t solos_param_store(struct device *dev, struct device_attribute *at
		return -ENOMEM;
		return -ENOMEM;
	}
	}


	header = (void *)skb_put(skb, sizeof(*header));
	header = skb_put(skb, sizeof(*header));


	buflen = snprintf((void *)&header[1], buflen - 1,
	buflen = snprintf((void *)&header[1], buflen - 1,
			  "L%05d\n%s\n%s\n", current->pid, attr->attr.name, buf);
			  "L%05d\n%s\n%s\n", current->pid, attr->attr.name, buf);
@@ -486,7 +486,7 @@ static int send_command(struct solos_card *card, int dev, const char *buf, size_
		return 0;
		return 0;
	}
	}


	header = (void *)skb_put(skb, sizeof(*header));
	header = skb_put(skb, sizeof(*header));


	header->size = cpu_to_le16(size);
	header->size = cpu_to_le16(size);
	header->vpi = cpu_to_le16(0);
	header->vpi = cpu_to_le16(0);
@@ -945,7 +945,7 @@ static int popen(struct atm_vcc *vcc)
			dev_warn(&card->dev->dev, "Failed to allocate sk_buff in popen()\n");
			dev_warn(&card->dev->dev, "Failed to allocate sk_buff in popen()\n");
		return -ENOMEM;
		return -ENOMEM;
	}
	}
	header = (void *)skb_put(skb, sizeof(*header));
	header = skb_put(skb, sizeof(*header));


	header->size = cpu_to_le16(0);
	header->size = cpu_to_le16(0);
	header->vpi = cpu_to_le16(vcc->vpi);
	header->vpi = cpu_to_le16(vcc->vpi);
@@ -982,7 +982,7 @@ static void pclose(struct atm_vcc *vcc)
		dev_warn(&card->dev->dev, "Failed to allocate sk_buff in pclose()\n");
		dev_warn(&card->dev->dev, "Failed to allocate sk_buff in pclose()\n");
		return;
		return;
	}
	}
	header = (void *)skb_put(skb, sizeof(*header));
	header = skb_put(skb, sizeof(*header));


	header->size = cpu_to_le16(0);
	header->size = cpu_to_le16(0);
	header->vpi = cpu_to_le16(vcc->vpi);
	header->vpi = cpu_to_le16(vcc->vpi);
@@ -1398,7 +1398,7 @@ static int atm_init(struct solos_card *card, struct device *parent)
			continue;
			continue;
		}
		}


		header = (void *)skb_put(skb, sizeof(*header));
		header = skb_put(skb, sizeof(*header));


		header->size = cpu_to_le16(0);
		header->size = cpu_to_le16(0);
		header->vpi = cpu_to_le16(0);
		header->vpi = cpu_to_le16(0);
+1 −1
Original line number Original line Diff line number Diff line
@@ -448,7 +448,7 @@ static void bluecard_receive(struct bluecard_info *info,


		} else {
		} else {


			*skb_put(info->rx_skb, 1) = buf[i];
			*(u8 *)skb_put(info->rx_skb, 1) = buf[i];
			info->rx_count--;
			info->rx_count--;


			if (info->rx_count == 0) {
			if (info->rx_count == 0) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -282,7 +282,7 @@ static void bt3c_receive(struct bt3c_info *info)


			__u8 x = inb(iobase + DATA_L);
			__u8 x = inb(iobase + DATA_L);


			*skb_put(info->rx_skb, 1) = x;
			*(u8 *)skb_put(info->rx_skb, 1) = x;
			inb(iobase + DATA_H);
			inb(iobase + DATA_H);
			info->rx_count--;
			info->rx_count--;


+1 −1
Original line number Original line Diff line number Diff line
@@ -189,7 +189,7 @@ static int btmrvl_send_sync_cmd(struct btmrvl_private *priv, u16 opcode,
		return -ENOMEM;
		return -ENOMEM;
	}
	}


	hdr = (struct hci_command_hdr *)skb_put(skb, HCI_COMMAND_HDR_SIZE);
	hdr = skb_put(skb, HCI_COMMAND_HDR_SIZE);
	hdr->opcode = cpu_to_le16(opcode);
	hdr->opcode = cpu_to_le16(opcode);
	hdr->plen = len;
	hdr->plen = len;


Loading