From 43be1343667ae03cfb0c9ea4d56575c61b5c8d92 Mon Sep 17 00:00:00 2001 From: Petar Jovanovic Date: Mon, 15 Jul 2013 15:17:40 +0200 Subject: [PATCH 1/5] linux-user: declare sys_futex to have 6 arguments sys_futex has 6 arguments, and all of these need to be copied. Fix incorrect declaration in the mips_syscall_args array. This change fixes the cases where the 5th and 6th arguments have non-zero value and have importance. An example is a Linux implementation of pthread_cond_wait() function. Signed-off-by: Petar Jovanovic Reviewed-by: Peter Maydell Signed-off-by: Michael Tokarev --- linux-user/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/main.c b/linux-user/main.c index 7f15d3da2b..99c3b3f5ef 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -2028,7 +2028,7 @@ static const uint8_t mips_syscall_args[] = { MIPS_SYS(sys_fremovexattr, 2) /* 4235 */ MIPS_SYS(sys_tkill , 2) MIPS_SYS(sys_sendfile64 , 5) - MIPS_SYS(sys_futex , 2) + MIPS_SYS(sys_futex , 6) MIPS_SYS(sys_sched_setaffinity, 3) MIPS_SYS(sys_sched_getaffinity, 3) /* 4240 */ MIPS_SYS(sys_io_setup , 2) From 0e44486cdccb4c1f9e5fad390cfd7186850c7204 Mon Sep 17 00:00:00 2001 From: Michael Tokarev Date: Sat, 13 Jul 2013 13:10:05 +0400 Subject: [PATCH 2/5] slirp: remove mbuf(m_hdr,m_dat) indirection --- slirp/mbuf.h | 51 +++++++++++++++++------------------------------- slirp/tcp_subr.c | 12 ++++++------ 2 files changed, 24 insertions(+), 39 deletions(-) diff --git a/slirp/mbuf.h b/slirp/mbuf.h index 3f3ab095b1..b144f1ce3a 100644 --- a/slirp/mbuf.h +++ b/slirp/mbuf.h @@ -49,22 +49,6 @@ * free the m_ext. This is inefficient memory-wise, but who cares. */ -/* XXX should union some of these! */ -/* header at beginning of each mbuf: */ -struct m_hdr { - struct mbuf *mh_next; /* Linked list of mbufs */ - struct mbuf *mh_prev; - struct mbuf *mh_nextpkt; /* Next packet in queue/record */ - struct mbuf *mh_prevpkt; /* Flags aren't used in the output queue */ - int mh_flags; /* Misc flags */ - - int mh_size; /* Size of data */ - struct socket *mh_so; - - caddr_t mh_data; /* Location of data */ - int mh_len; /* Amount of data in this mbuf */ -}; - /* * How much room is in the mbuf, from m_data to the end of the mbuf */ @@ -80,29 +64,30 @@ struct m_hdr { #define M_TRAILINGSPACE M_FREEROOM struct mbuf { - struct m_hdr m_hdr; + /* XXX should union some of these! */ + /* header at beginning of each mbuf: */ + struct mbuf *m_next; /* Linked list of mbufs */ + struct mbuf *m_prev; + struct mbuf *m_nextpkt; /* Next packet in queue/record */ + struct mbuf *m_prevpkt; /* Flags aren't used in the output queue */ + int m_flags; /* Misc flags */ + + int m_size; /* Size of data */ + struct socket *m_so; + + caddr_t m_data; /* Location of data */ + int m_len; /* Amount of data in this mbuf */ + Slirp *slirp; bool arp_requested; uint64_t expiration_date; /* start of dynamic buffer area, must be last element */ - union M_dat { - char m_dat_[1]; /* ANSI don't like 0 sized arrays */ - char *m_ext_; - } M_dat; + union { + char m_dat[1]; /* ANSI don't like 0 sized arrays */ + char *m_ext; + }; }; -#define m_next m_hdr.mh_next -#define m_prev m_hdr.mh_prev -#define m_nextpkt m_hdr.mh_nextpkt -#define m_prevpkt m_hdr.mh_prevpkt -#define m_flags m_hdr.mh_flags -#define m_len m_hdr.mh_len -#define m_data m_hdr.mh_data -#define m_size m_hdr.mh_size -#define m_dat M_dat.m_dat_ -#define m_ext M_dat.m_ext_ -#define m_so m_hdr.mh_so - #define ifq_prev m_prev #define ifq_next m_next #define ifs_prev m_prevpkt diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c index e98ce1a50c..043f28fcae 100644 --- a/slirp/tcp_subr.c +++ b/slirp/tcp_subr.c @@ -647,7 +647,7 @@ tcp_emu(struct socket *so, struct mbuf *m) n4 = (laddr & 0xff); m->m_len = bptr - m->m_data; /* Adjust length */ - m->m_len += snprintf(bptr, m->m_hdr.mh_size - m->m_len, + m->m_len += snprintf(bptr, m->m_size - m->m_len, "ORT %d,%d,%d,%d,%d,%d\r\n%s", n1, n2, n3, n4, n5, n6, x==7?buff:""); return 1; @@ -680,7 +680,7 @@ tcp_emu(struct socket *so, struct mbuf *m) n4 = (laddr & 0xff); m->m_len = bptr - m->m_data; /* Adjust length */ - m->m_len += snprintf(bptr, m->m_hdr.mh_size - m->m_len, + m->m_len += snprintf(bptr, m->m_size - m->m_len, "27 Entering Passive Mode (%d,%d,%d,%d,%d,%d)\r\n%s", n1, n2, n3, n4, n5, n6, x==7?buff:""); @@ -706,7 +706,7 @@ tcp_emu(struct socket *so, struct mbuf *m) if (m->m_data[m->m_len-1] == '\0' && lport != 0 && (so = tcp_listen(slirp, INADDR_ANY, 0, so->so_laddr.s_addr, htons(lport), SS_FACCEPTONCE)) != NULL) - m->m_len = snprintf(m->m_data, m->m_hdr.mh_size, "%d", + m->m_len = snprintf(m->m_data, m->m_size, "%d", ntohs(so->so_fport)) + 1; return 1; @@ -726,7 +726,7 @@ tcp_emu(struct socket *so, struct mbuf *m) return 1; } m->m_len = bptr - m->m_data; /* Adjust length */ - m->m_len += snprintf(bptr, m->m_hdr.mh_size, + m->m_len += snprintf(bptr, m->m_size, "DCC CHAT chat %lu %u%c\n", (unsigned long)ntohl(so->so_faddr.s_addr), ntohs(so->so_fport), 1); @@ -737,7 +737,7 @@ tcp_emu(struct socket *so, struct mbuf *m) return 1; } m->m_len = bptr - m->m_data; /* Adjust length */ - m->m_len += snprintf(bptr, m->m_hdr.mh_size, + m->m_len += snprintf(bptr, m->m_size, "DCC SEND %s %lu %u %u%c\n", buff, (unsigned long)ntohl(so->so_faddr.s_addr), ntohs(so->so_fport), n1, 1); @@ -748,7 +748,7 @@ tcp_emu(struct socket *so, struct mbuf *m) return 1; } m->m_len = bptr - m->m_data; /* Adjust length */ - m->m_len += snprintf(bptr, m->m_hdr.mh_size, + m->m_len += snprintf(bptr, m->m_size, "DCC MOVE %s %lu %u %u%c\n", buff, (unsigned long)ntohl(so->so_faddr.s_addr), ntohs(so->so_fport), n1, 1); From 805695daf64879959e3ea357fe9c391ddacea9c6 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Tue, 9 Jul 2013 10:07:53 -0400 Subject: [PATCH 3/5] Fix command example in qemu.sasl sasldblistusers2 doesn't have a '-a' option Signed-off-by: Cole Robinson Signed-off-by: Michael Tokarev --- qemu.sasl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu.sasl b/qemu.sasl index cf19cf8d07..9dc8323f1d 100644 --- a/qemu.sasl +++ b/qemu.sasl @@ -26,7 +26,7 @@ keytab: /etc/qemu/krb5.tab # If using digest-md5 for username/passwds, then this is the file # containing the passwds. Use 'saslpasswd2 -a qemu [username]' -# to add entries, and 'sasldblistusers2 -a qemu' to browse it +# to add entries, and 'sasldblistusers2 -f [sasldb_path]' to browse it sasldb_path: /etc/qemu/passwd.db From f5aac8e07ff25846c7a5c1a5153c49c18715d9f0 Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Tue, 4 Jun 2013 11:59:14 -0400 Subject: [PATCH 4/5] block/m25p80: Update Micron entries - Split 32Mb and 256Mb parts into a11 and a13 variants. - Add the 4K sector flag to the 128Mb parts. (These entries were taken from the Linux kernel list, which is missing the flag.) - Fill out the table of sizes with entries for 64Mb parts. Prodded by Peter Crosthwaite. Signed-off-by: Ed Maste Signed-off-by: Michael Tokarev --- hw/block/m25p80.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index a927a6bc21..8c3b7f0d3b 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -123,10 +123,14 @@ static const FlashPartInfo known_devices[] = { { INFO("mx25l25655e", 0xc22619, 0, 64 << 10, 512, 0) }, /* Micron */ - { INFO("n25q032a", 0x20bb16, 0, 64 << 10, 64, ER_4K) }, - { INFO("n25q128a11", 0x20bb18, 0, 64 << 10, 256, 0) }, - { INFO("n25q128a13", 0x20ba18, 0, 64 << 10, 256, 0) }, - { INFO("n25q256a", 0x20ba19, 0, 64 << 10, 512, ER_4K) }, + { INFO("n25q032a11", 0x20bb16, 0, 64 << 10, 64, ER_4K) }, + { INFO("n25q032a13", 0x20ba16, 0, 64 << 10, 64, ER_4K) }, + { INFO("n25q064a11", 0x20bb17, 0, 64 << 10, 128, ER_4K) }, + { INFO("n25q064a13", 0x20ba17, 0, 64 << 10, 128, ER_4K) }, + { INFO("n25q128a11", 0x20bb18, 0, 64 << 10, 256, ER_4K) }, + { INFO("n25q128a13", 0x20ba18, 0, 64 << 10, 256, ER_4K) }, + { INFO("n25q256a11", 0x20bb19, 0, 64 << 10, 512, ER_4K) }, + { INFO("n25q256a13", 0x20ba19, 0, 64 << 10, 512, ER_4K) }, /* Spansion -- single (large) sector size only, at least * for the chips listed here (without boot sectors). From be022d61f4938bb051e8af8e6cb470ec1602c488 Mon Sep 17 00:00:00 2001 From: Michael Tokarev Date: Thu, 11 Jul 2013 12:55:50 +0400 Subject: [PATCH 5/5] doc: monitor multiplexing rewording Signed-off-by: Michael Tokarev --- qemu-options.hx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qemu-options.hx b/qemu-options.hx index 4e98b4f483..2dbfd42a8c 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2493,8 +2493,8 @@ listening on port 4444 would be: @table @code @item -serial mon:telnet::4444,server,nowait @end table -When monitor is multiplexed to stdio this way, Ctrl+C will not terminate -QEMU anymore but will be passed to the guest instead. +When the monitor is multiplexed to stdio in this way, Ctrl+C will not terminate +QEMU any more but will be passed to the guest instead. @item braille Braille device. This will use BrlAPI to display the braille output on a real