mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1 iQEcBAABAgAGBQJYgXzxAAoJEO8Ells5jWIRgtAIAKuFrOBE/xJnjd/45sVKcx2j fsohKHF8T/eLmt5sw+MhGtnM/oRJRUX8kGpA9AU8m6TCSaTYh2tOKX5lwrykuAzk feqz2pqZFwiLWs5Ro7qEQIhMkqtFetODvKd05qnKnAldj8SC45czKxdghmSP/B+w 4nnDEdqVqUuUseDCa1mW1b4f6g1N93LbgChK7lK9Xqg+OqeEbQ7nLgVvcWvN7+Ea DfDKWP8tjQ5QhjzFWc4wa9/Tx+0HI7Dn57fv98XdJMvm1kt/MdnO7QKAXWmHH5s/ 6DX+NHgN0ZAn85gv/ufq1F9C4TstbAoZA9EOGhoBJ5ww8mueARB3L2iCj+OcS9A= =gkbh -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into staging # gpg: Signature made Fri 20 Jan 2017 02:58:57 GMT # gpg: using RSA key 0xEF04965B398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * remotes/jasowang/tags/net-pull-request: tap: fix memory leak on failure in net_init_tap() hw/pci: use-after-free in pci_nic_init_nofail when nic device fails to initialize hw/net/dp8393x: Avoid unintentional sign extensions on addresses m68k: QOMify the MCF Fast Ethernet Controller device net: optimize checksum computation docs: Fix description of the sentence Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
db655a9653
9 changed files with 184 additions and 73 deletions
|
@ -22,17 +22,22 @@
|
|||
|
||||
uint32_t net_checksum_add_cont(int len, uint8_t *buf, int seq)
|
||||
{
|
||||
uint32_t sum = 0;
|
||||
uint32_t sum1 = 0, sum2 = 0;
|
||||
int i;
|
||||
|
||||
for (i = seq; i < seq + len; i++) {
|
||||
if (i & 1) {
|
||||
sum += (uint32_t)buf[i - seq];
|
||||
} else {
|
||||
sum += (uint32_t)buf[i - seq] << 8;
|
||||
}
|
||||
for (i = 0; i < len - 1; i += 2) {
|
||||
sum1 += (uint32_t)buf[i];
|
||||
sum2 += (uint32_t)buf[i + 1];
|
||||
}
|
||||
if (i < len) {
|
||||
sum1 += (uint32_t)buf[i];
|
||||
}
|
||||
|
||||
if (seq & 1) {
|
||||
return sum1 + (sum2 << 8);
|
||||
} else {
|
||||
return sum2 + (sum1 << 8);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
uint16_t net_checksum_finish(uint32_t sum)
|
||||
|
|
|
@ -789,8 +789,8 @@ int net_init_tap(const Netdev *netdev, const char *name,
|
|||
return -1;
|
||||
}
|
||||
} else if (tap->has_fds) {
|
||||
char **fds = g_new0(char *, MAX_TAP_QUEUES);
|
||||
char **vhost_fds = g_new0(char *, MAX_TAP_QUEUES);
|
||||
char **fds;
|
||||
char **vhost_fds;
|
||||
int nfds, nvhosts;
|
||||
|
||||
if (tap->has_ifname || tap->has_script || tap->has_downscript ||
|
||||
|
@ -802,6 +802,9 @@ int net_init_tap(const Netdev *netdev, const char *name,
|
|||
return -1;
|
||||
}
|
||||
|
||||
fds = g_new0(char *, MAX_TAP_QUEUES);
|
||||
vhost_fds = g_new0(char *, MAX_TAP_QUEUES);
|
||||
|
||||
nfds = get_fds(tap->fds, fds, MAX_TAP_QUEUES);
|
||||
if (tap->has_vhostfds) {
|
||||
nvhosts = get_fds(tap->vhostfds, vhost_fds, MAX_TAP_QUEUES);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue