 int ethernet_main(int argc, char *argv[])
 {
   struct netbuf *buf;
   int ret;
+  static int initialized = 0;
 
+  if (!initialized) {              ͏̌Ăяô݂ɕύX
   buf = kz_kmalloc(sizeof(*buf));
   buf->cmd = NETDRV_CMD_USE;
   kz_send(MSGBOX_ID_NETPROC, 0, (char *)buf);
 
+    initialized++;
+  }
+
-  while (1) {
-    kz_recv(MSGBOX_ID_ETHPROC, NULL, (void *)&buf);
+  if (kz_recv(MSGBOX_ID_ETHPROC, NULL, (void *)&buf) != -1) {  Mf[^̏ꍇɂ́Ĉ܂܊֐߂
     ret = ethernet_proc(buf);
     if (!ret) kz_kmfree(buf);
   }
 
   return 0;
 }
