Thread (8 messages) 8 messages, 2 authors, 2021-08-12

Re: [PATCH v4 1/2] tty: hvc: pass DMA capable memory to put_chars()

From: Xianting Tian <hidden>
Date: 2021-08-07 15:00:39
Also in: lkml

在 2021/8/6 下午10:51, Arnd Bergmann 写道:
On Fri, Aug 6, 2021 at 5:01 AM Xianting Tian
[off-list ref] wrote:
quoted
@@ -163,6 +155,13 @@ static void hvc_console_print(struct console *co, const char *b,
         if (vtermnos[index] == -1)
                 return;

+       list_for_each_entry(hp, &hvc_structs, next)
+               if (hp->vtermno == vtermnos[index])
+                       break;
+
+       c = hp->c;
+
+       spin_lock_irqsave(&hp->c_lock, flags);
The loop looks like it might race against changes to the list. It seems strange
that the print function has to actually search for the structure here.

It may be better to have yet another array for the buffer pointers next to
the cons_ops[] and vtermnos[] arrays.
I will make the change in v5, thanks.
quoted
+/*
+ * These sizes are most efficient for vio, because they are the
+ * native transfer size. We could make them selectable in the
+ * future to better deal with backends that want other buffer sizes.
+ */
+#define N_OUTBUF       16
+#define N_INBUF                16
+
+#define __ALIGNED__ __attribute__((__aligned__(sizeof(long))))
I think you need a higher alignment for DMA buffers, instead of sizeof(long),
I would suggest ARCH_DMA_MINALIGN.
thanks, I will fix it in v5:

#define __ALIGNED__ __attribute__((__aligned__(ARCH_DMA_MINALIGN)))
        Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help