diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-06-20 18:14:28 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-06-20 18:14:28 -0400 |
| commit | fe80352460971de12519bf46ed5ec4235350bcd7 (patch) | |
| tree | 5ecaa3409b76cb0829f905e5c1ceadf20a29829c /tools | |
| parent | f8fc0c9a5f7f4f5a3d2e7dd58147e30053cc5dd8 (diff) | |
| parent | 96c9f05b39a5a3239cf0588cc86a1b95cac652c4 (diff) | |
Merge tag 'driver-core-3.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core and printk fixes from Greg Kroah-Hartman:
"Here are some fixes for 3.5-rc4 that resolve the kmsg problems that
people have reported showing up after the printk and kmsg changes went
into 3.5-rc1. There are also a smattering of other tiny fixes for the
extcon and hyper-v drivers that people have reported.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
* tag 'driver-core-3.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
extcon: max8997: Add missing kfree for info->edev in max8997_muic_remove()
extcon: Set platform drvdata in gpio_extcon_probe() and fix irq leak
extcon: Fix wrong index in max8997_extcon_cable[]
kmsg - kmsg_dump() fix CONFIG_PRINTK=n compilation
printk: return -EINVAL if the message len is bigger than the buf size
printk: use mutex lock to stop syslog_seq from going wild
kmsg - kmsg_dump() use iterator to receive log buffer content
vme: change maintainer e-mail address
Extcon: Don't try to create duplicate link names
driver core: fixup reversed deferred probe order
printk: Fix alignment of buf causing crash on ARM EABI
Tools: hv: verify origin of netlink connector message
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/hv/hv_kvp_daemon.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/hv/hv_kvp_daemon.c b/tools/hv/hv_kvp_daemon.c index 146fd6147e84..d9834b362943 100644 --- a/tools/hv/hv_kvp_daemon.c +++ b/tools/hv/hv_kvp_daemon.c | |||
| @@ -701,14 +701,18 @@ int main(void) | |||
| 701 | pfd.fd = fd; | 701 | pfd.fd = fd; |
| 702 | 702 | ||
| 703 | while (1) { | 703 | while (1) { |
| 704 | struct sockaddr *addr_p = (struct sockaddr *) &addr; | ||
| 705 | socklen_t addr_l = sizeof(addr); | ||
| 704 | pfd.events = POLLIN; | 706 | pfd.events = POLLIN; |
| 705 | pfd.revents = 0; | 707 | pfd.revents = 0; |
| 706 | poll(&pfd, 1, -1); | 708 | poll(&pfd, 1, -1); |
| 707 | 709 | ||
| 708 | len = recv(fd, kvp_recv_buffer, sizeof(kvp_recv_buffer), 0); | 710 | len = recvfrom(fd, kvp_recv_buffer, sizeof(kvp_recv_buffer), 0, |
| 711 | addr_p, &addr_l); | ||
| 709 | 712 | ||
| 710 | if (len < 0) { | 713 | if (len < 0 || addr.nl_pid) { |
| 711 | syslog(LOG_ERR, "recv failed; error:%d", len); | 714 | syslog(LOG_ERR, "recvfrom failed; pid:%u error:%d %s", |
| 715 | addr.nl_pid, errno, strerror(errno)); | ||
| 712 | close(fd); | 716 | close(fd); |
| 713 | return -1; | 717 | return -1; |
| 714 | } | 718 | } |
