loader: allocate properly aligned buffer for network packet

Use memalign(4, size) to ensure we have properly aligned buffer.

MFC after:	2 weeks
This commit is contained in:
Toomas Soome 2020-01-13 18:22:54 +00:00
parent 6e6161d220
commit 659bf32dfc
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=356693
4 changed files with 4 additions and 4 deletions

View File

@ -178,7 +178,7 @@ efinet_get(struct iodesc *desc, void **pkt, time_t timeout)
return (ret);
bufsz = net->Mode->MaxPacketSize + ETHER_HDR_LEN + ETHER_CRC_LEN;
buf = malloc(bufsz + ETHER_ALIGN);
buf = memalign(4, bufsz + ETHER_ALIGN);
if (buf == NULL)
return (ret);
ptr = buf + ETHER_ALIGN;

View File

@ -484,7 +484,7 @@ pxe_netif_receive(void **pkt)
}
size = isr->FrameLength;
buf = malloc(size + ETHER_ALIGN);
buf = memalign(4, size + ETHER_ALIGN);
if (buf == NULL) {
bio_free(isr, sizeof(*isr));
return (-1);

View File

@ -142,7 +142,7 @@ ofwn_get(struct iodesc *desc, void **pkt, time_t timeout)
* a small shortcut here.
*/
len = ETHER_MAX_LEN;
buf = malloc(len + ETHER_ALIGN);
buf = memalign(4, len + ETHER_ALIGN);
if (buf == NULL)
return (-1);
ptr = buf + ETHER_ALIGN;

View File

@ -302,7 +302,7 @@ net_get(struct iodesc *desc, void **pkt, time_t timeout)
#endif
if (rlen > 0) {
buf = malloc(rlen + ETHER_ALIGN);
buf = memalign(4, rlen + ETHER_ALIGN);
if (buf == NULL)
return (-1);
memcpy(buf + ETHER_ALIGN, sc->sc_rxbuf, rlen);