On 05/25/2018 08:08 PM, Eric Blake wrote:
On 05/25/2018 12:46 PM, Halil Pasic wrote:

+static inline void warn_once(bool *warned, const char *fmt, ...)
+{
+    va_list ap;
+
+    if (!warned || *warned) {
+        return;
+    }
+    *warned = true;
+    va_start(ap, fmt);
+    warn_vreport(fmt, ap);
+    va_end(ap);
+}
+
+static inline void warn_once_pfch(VFIOCCWDevice *vcdev, SubchDev *sch,
+                                  const char *msg)
+{
+    warn_once(&vcdev->warned_orb_pfch, "vfio-ccw (devno %x.%x.%04x): %s",
+              sch->cssid, sch->ssid, sch->devno, msg);
+}
+

While I still think we want warn_once() in common error handling code,
this looks reasonable enough. We can still move it later.


I agree. I was a bit surprised to not find any warn_once functionality.

That has been proposed:
https://lists.gnu.org/archive/html/qemu-devel/2018-05/msg05457.html


Thanks! I was not aware of this. If we were to use that we would
AFAIU have to transition to once-once instead of once per device
as done in my patch based on Connie's request.

Regards,
Halil


Reply via email to