diff options
-rw-r--r-- | board-qemu/slof/virtio-serial.fs | 12 | ||||
-rw-r--r-- | slof/fs/client.fs | 5 |
2 files changed, 8 insertions, 9 deletions
diff --git a/board-qemu/slof/virtio-serial.fs b/board-qemu/slof/virtio-serial.fs index a99293f..e307231 100644 --- a/board-qemu/slof/virtio-serial.fs +++ b/board-qemu/slof/virtio-serial.fs @@ -19,13 +19,8 @@ virtio-setup-vd VALUE virtiodev \ Quiescence the virtqueue of this device so that no more background \ transactions can be pending. : shutdown ( -- ) - initialized? IF - my-phandle node>path open-dev ?dup IF - virtiodev virtio-serial-shutdown - close-dev - THEN - FALSE to initialized? - THEN + virtiodev virtio-serial-shutdown + FALSE to initialized? ; : virtio-serial-term-emit @@ -39,7 +34,6 @@ virtio-setup-vd VALUE virtiodev : init ( -- ) virtiodev virtio-serial-init drop TRUE to initialized? - ['] shutdown add-quiesce-xt ; 0 VALUE open-count @@ -58,7 +52,7 @@ virtiodev virtio-serial-init drop : close open-count 0> IF open-count 1 - dup to open-count - 0= IF close THEN + 0= IF shutdown THEN THEN close ; diff --git a/slof/fs/client.fs b/slof/fs/client.fs index db7a192..76231f9 100644 --- a/slof/fs/client.fs +++ b/slof/fs/client.fs @@ -203,6 +203,11 @@ ALSO client-voc DEFINITIONS \ End of life of SLOF now, call platform quiesce as quiesce \ is an undocumented extension and not everybody supports it close-dev + \ Some device, eg. virtio-serial, need all instances to be + \ closed in order to be reset properly + s" stdout" get-chosen IF + decode-int nip nip close-dev + THEN quiesce ELSE close-dev |