summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/1904331
diff options
context:
space:
mode:
Diffstat (limited to 'results/scraper/launchpad-without-comments/1904331')
-rw-r--r--results/scraper/launchpad-without-comments/190433126
1 files changed, 26 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/1904331 b/results/scraper/launchpad-without-comments/1904331
new file mode 100644
index 000000000..ee820e47b
--- /dev/null
+++ b/results/scraper/launchpad-without-comments/1904331
@@ -0,0 +1,26 @@
+Coding bug in the function serial_ioport_write in serial.c
+
+Branch hash: b50ea0d  (pulled from github).
+
+I was reviewing the code and noticed the following in the function serial_ioport_write:
+
+    assert(size == 1 && addr < 8);
+        .
+        .
+        .
+    switch(addr) {
+    default:
+    case 0:
+        if (s->lcf & UART_LCR_DLAB) {
+            if (size == 1) {
+                s->divider = (s->divider & 0xff00) | val;
+            } else {
+                s->divider = val;
+            }
+        }
+
+The assert will trigger if the size is > 1, so the else of the if (size == 1) will never be executed and an attempt to specify a size > 1 will trigger an assert.
+
+The documentation for the UART indicates that the 16-bit divisor is broken up amongst 2 8-bit registers (DLL and DLM).  There already is code to handle the DLL and DLM portions of the divider register (as coded).
+
+This is not exactly going to cause a bug, as there is no code that calls this function with a value for size other than 1.  It is just unnecessary code.
\ No newline at end of file