Commit b47543c4f065e6cab06676a988a49c5d09229abe
1 parent
ceecf1d1
serial: open a null device if the CharDriverState argument is null
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6366 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
3 additions
and
5 deletions
hw/serial.c
| ... | ... | @@ -711,7 +711,7 @@ static void serial_init_core(SerialState *s, qemu_irq irq, int baudbase, |
| 711 | 711 | { |
| 712 | 712 | s->irq = irq; |
| 713 | 713 | s->baudbase = baudbase; |
| 714 | - s->chr = chr; | |
| 714 | + s->chr = chr ?: qemu_chr_open("null", "null", NULL); | |
| 715 | 715 | |
| 716 | 716 | s->modem_status_poll = qemu_new_timer(vm_clock, (QEMUTimerCB *) serial_update_msl, s); |
| 717 | 717 | |
| ... | ... | @@ -721,6 +721,8 @@ static void serial_init_core(SerialState *s, qemu_irq irq, int baudbase, |
| 721 | 721 | qemu_register_reset(serial_reset, s); |
| 722 | 722 | serial_reset(s); |
| 723 | 723 | |
| 724 | + qemu_chr_add_handlers(s->chr, serial_can_receive1, serial_receive1, | |
| 725 | + serial_event, s); | |
| 724 | 726 | } |
| 725 | 727 | |
| 726 | 728 | /* If fd is zero, it means that the serial device uses the console */ |
| ... | ... | @@ -739,8 +741,6 @@ SerialState *serial_init(int base, qemu_irq irq, int baudbase, |
| 739 | 741 | |
| 740 | 742 | register_ioport_write(base, 8, 1, serial_ioport_write, s); |
| 741 | 743 | register_ioport_read(base, 8, 1, serial_ioport_read, s); |
| 742 | - qemu_chr_add_handlers(chr, serial_can_receive1, serial_receive1, | |
| 743 | - serial_event, s); | |
| 744 | 744 | return s; |
| 745 | 745 | } |
| 746 | 746 | |
| ... | ... | @@ -837,8 +837,6 @@ SerialState *serial_mm_init (target_phys_addr_t base, int it_shift, |
| 837 | 837 | serial_mm_write, s); |
| 838 | 838 | cpu_register_physical_memory(base, 8 << it_shift, s_io_memory); |
| 839 | 839 | } |
| 840 | - qemu_chr_add_handlers(chr, serial_can_receive1, serial_receive1, | |
| 841 | - serial_event, s); | |
| 842 | 840 | serial_update_msl(s); |
| 843 | 841 | return s; |
| 844 | 842 | } | ... | ... |