+ if (!size) {
+ return 0;
+ }
+
+ ret = qemu_chr_fe_write_all(out, (uint8_t *)&len, sizeof(len));
+ if (ret != sizeof(len)) {
+ goto err;
+ }
+
+ ret = qemu_chr_fe_write_all(out, (uint8_t *)buf, size);
+ if (ret != size) {
+ goto err;
+ }
+
You can make this slightly simpler and save the return 0;
If we want to save the return 0 , the code will be changed like that:
err:
return (ret < 0 || ret == size) ? ret : -EIO;
I think it too complex to be understood, so should we keep the original ?
+ return 0;
+
+err:
+ return ret < 0 ? ret : -EIO;
err:
return ret <= 0 ? ret : -EIO;
This is wrong, if qemu_chr_fe_write_all success, ret will equal size.
return -EIO.
+}
+
+static int compare_chr_can_read(void *opaque)
+{
+ return COMPARE_READ_LEN_MAX;
+}
--
Thanks
zhangchen