All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][VT] fix bug that service os&vmx guest can't communicate with each other.
@ 2005-09-08 10:06 Edwin Zhai
  2005-09-08 11:28 ` Keir Fraser
  0 siblings, 1 reply; 5+ messages in thread
From: Edwin Zhai @ 2005-09-08 10:06 UTC (permalink / raw)
  To: Ian Pratt, Keir Fraser; +Cc: xen-devel

fix bug that service os&vmx guest can't communicate with each other.
Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>

diff -r 04ca47c298b5 -r a80889c7da99 tools/ioemu/hw/pcnet.c
--- a/tools/ioemu/hw/pcnet.c	Thu Sep  1 21:30:51 2005
+++ b/tools/ioemu/hw/pcnet.c	Mon Sep  5 09:33:29 2005
@@ -380,10 +380,13 @@
     return sizeof(s->buffer)-16;
 }
 
+#define MIN_BUF_SIZE 60
+
 static void pcnet_receive(void *opaque, const uint8_t *buf, int size)
 {
     PCNetState *s = opaque;
     int is_padr = 0, is_bcast = 0, is_ladr = 0;
+    uint8_t buf1[60];
 
     if (CSR_DRX(s) || CSR_STOP(s) || CSR_SPND(s) || !size)
         return;
@@ -391,6 +394,14 @@
 #ifdef PCNET_DEBUG
     printf("pcnet_receive size=%d\n", size);
 #endif
+
+    /* if too small buffer, then expand it */
+    if (size < MIN_BUF_SIZE) {
+        memcpy(buf1, buf, size);
+        memset(buf1 + size, 0, MIN_BUF_SIZE - size);
+        buf = buf1;
+        size = MIN_BUF_SIZE;
+    }
 
     if (CSR_PROM(s) 
         || (is_padr=padr_match(s, buf, size)) 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][VT] fix bug that service os&vmx guest can't communicate with each other.
  2005-09-08 10:06 [PATCH][VT] fix bug that service os&vmx guest can't communicate with each other Edwin Zhai
@ 2005-09-08 11:28 ` Keir Fraser
  2005-09-08 12:41   ` Zhai, Edwin
  0 siblings, 1 reply; 5+ messages in thread
From: Keir Fraser @ 2005-09-08 11:28 UTC (permalink / raw)
  To: Edwin Zhai; +Cc: xen-devel, Ian Pratt


On 8 Sep 2005, at 11:06, Edwin Zhai wrote:

> fix bug that service os&vmx guest can't communicate with each other.
> Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
> Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>

Why is special treatment needed for small packets? Is this simply 
masking a bug elsewhere -- the original qemu driver must have dealt 
with small packets (e.g., TCP acks) correctly.

  -- Keir

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][VT] fix bug that service os&vmx guest can't communicate with each other.
  2005-09-08 11:28 ` Keir Fraser
@ 2005-09-08 12:41   ` Zhai, Edwin
  2005-09-08 13:07     ` Keir Fraser
  0 siblings, 1 reply; 5+ messages in thread
From: Zhai, Edwin @ 2005-09-08 12:41 UTC (permalink / raw)
  To: Keir Fraser; +Cc: xen-devel, Ian Pratt

Keir Fraser wrote:

>
> On 8 Sep 2005, at 11:06, Edwin Zhai wrote:
>
>> fix bug that service os&vmx guest can't communicate with each other.
>> Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
>> Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
>
>
> Why is special treatment needed for small packets? Is this simply 
> masking a bug elsewhere -- the original qemu driver must have dealt 
> with small packets (e.g., TCP acks) correctly.

extend the ether packet to 60 bytes else the guest ethernet driver will 
report error.
in fact, the patch is borrowed from qemu ne2000.

>
>  -- Keir
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][VT] fix bug that service os&vmx guest can't communicate with each other.
  2005-09-08 12:41   ` Zhai, Edwin
@ 2005-09-08 13:07     ` Keir Fraser
  2005-09-08 13:14       ` Zhai, Edwin
  0 siblings, 1 reply; 5+ messages in thread
From: Keir Fraser @ 2005-09-08 13:07 UTC (permalink / raw)
  To: Zhai, Edwin; +Cc: xen-devel, Ian Pratt


On 8 Sep 2005, at 13:41, Zhai, Edwin wrote:

>> Why is special treatment needed for small packets? Is this simply 
>> masking a bug elsewhere -- the original qemu driver must have dealt 
>> with small packets (e.g., TCP acks) correctly.
>
> extend the ether packet to 60 bytes else the guest ethernet driver 
> will report error.
> in fact, the patch is borrowed from qemu ne2000.

Fair enough. I guess you will push this patch to the vx-testing tree?

  -- Keir

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][VT] fix bug that service os&vmx guest can't communicate with each other.
  2005-09-08 13:07     ` Keir Fraser
@ 2005-09-08 13:14       ` Zhai, Edwin
  0 siblings, 0 replies; 5+ messages in thread
From: Zhai, Edwin @ 2005-09-08 13:14 UTC (permalink / raw)
  To: Keir Fraser; +Cc: xen-devel, Ian Pratt

Keir Fraser wrote:

>
> On 8 Sep 2005, at 13:41, Zhai, Edwin wrote:
>
>>> Why is special treatment needed for small packets? Is this simply 
>>> masking a bug elsewhere -- the original qemu driver must have dealt 
>>> with small packets (e.g., TCP acks) correctly.
>>
>>
>> extend the ether packet to 60 bytes else the guest ethernet driver 
>> will report error.
>> in fact, the patch is borrowed from qemu ne2000.
>
>
> Fair enough. I guess you will push this patch to the vx-testing tree?

it has already gone into xen-vtx-unstable tree :)

>
>  -- Keir
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-09-08 13:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-08 10:06 [PATCH][VT] fix bug that service os&vmx guest can't communicate with each other Edwin Zhai
2005-09-08 11:28 ` Keir Fraser
2005-09-08 12:41   ` Zhai, Edwin
2005-09-08 13:07     ` Keir Fraser
2005-09-08 13:14       ` Zhai, Edwin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.