static void crtc_crc_cleanup(struct drm_crtc_crc *crc)
 {
        kfree(crc->entries);
+       crc->overflow = false;
        crc->entries = NULL;
        crc->head = 0;
        crc->tail = 0;
        tail = crc->tail;
 
        if (CIRC_SPACE(head, tail, DRM_CRC_ENTRIES_NR) < 1) {
+               bool was_overflow = crc->overflow;
+
+               crc->overflow = true;
                spin_unlock(&crc->lock);
-               DRM_ERROR("Overflow of CRC buffer, userspace reads too slow.\n");
+
+               if (!was_overflow)
+                       DRM_ERROR("Overflow of CRC buffer, userspace reads too slow.\n");
+
                return -ENOBUFS;
        }
 
 
  * @lock: protects the fields in this struct
  * @source: name of the currently configured source of CRCs
  * @opened: whether userspace has opened the data file for reading
+ * @overflow: whether an overflow occured.
  * @entries: array of entries, with size of %DRM_CRC_ENTRIES_NR
  * @head: head of circular queue
  * @tail: tail of circular queue
 struct drm_crtc_crc {
        spinlock_t lock;
        const char *source;
-       bool opened;
+       bool opened, overflow;
        struct drm_crtc_crc_entry *entries;
        int head, tail;
        size_t values_cnt;