History

Revert "kdb: Get rid of confusing diag msg from "rd" if current task has no regs"

This reverts commit bbfceba15f8d1260c328a254efc2b3f2deae4904. When DBG_MAX_REG_NUM is zero then a number of symbols are conditionally defined. It is therefore not possible to check it using C expressions.

Daniel Thompson committed 6 years ago

Commit fcf27361 parent dc2c7331 file · +15 −13Browse files

Unified · Split

kernel/debug/kdb/kdb_main.c+15−13
@@ -543,8 +543,9 @@ int kdbgetaddrarg(int argc, const char **argv, int *nextarg, · 542 unmodified lines
543 if (diag)543 if (diag)
544 return diag;544 return diag;
545 } else if (symname[0] == '%') {545 } else if (symname[0] == '%') {
546 if (kdb_check_regs())546 diag = kdb_check_regs();
547 return 0;547 if (diag)
548 return diag;
548 /* Implement register values with % at a later time as it is549 /* Implement register values with % at a later time as it is
549 * arch optional.550 * arch optional.
550 */551 */
@@ -1835,7 +1836,8 @@ static int kdb_go(int argc, const char **argv) · 1284 unmodified lines
1835 */1836 */
1836static int kdb_rd(int argc, const char **argv)1837static int kdb_rd(int argc, const char **argv)
1837{1838{
1838 int len = 0;1839 int len = kdb_check_regs();
1840#if DBG_MAX_REG_NUM > 0
1839 int i;1841 int i;
1840 char *rname;1842 char *rname;
1841 int rsize;1843 int rsize;
@@ -1844,14 +1846,8 @@ static int kdb_rd(int argc, const char **argv) · 2 unmodified lines
1844 u16 reg16;1846 u16 reg16;
1845 u8 reg8;1847 u8 reg8;
1846 1848
1847 if (kdb_check_regs())1849 if (len)
1848 return 0;1850 return len;
1849
1850 /* Fallback to Linux showregs() if we don't have DBG_MAX_REG_NUM */
1851 if (DBG_MAX_REG_NUM <= 0) {
1852 kdb_dumpregs(kdb_current_regs);
1853 return 0;
1854 }
1855 1851
1856 for (i = 0; i < DBG_MAX_REG_NUM; i++) {1852 for (i = 0; i < DBG_MAX_REG_NUM; i++) {
1857 rsize = dbg_reg_def[i].size * 2;1853 rsize = dbg_reg_def[i].size * 2;
@@ -1893,7 +1889,12 @@ static int kdb_rd(int argc, const char **argv) · 35 unmodified lines
1893 }1889 }
1894 }1890 }
1895 kdb_printf("\n");1891 kdb_printf("\n");
1892#else
1893 if (len)
1894 return len;
1896 1895
1896 kdb_dumpregs(kdb_current_regs);
1897#endif
1897 return 0;1898 return 0;
1898}1899}
1899 1900
@@ -1927,8 +1928,9 @@ static int kdb_rm(int argc, const char **argv) · 27 unmodified lines
1927 if (diag)1928 if (diag)
1928 return diag;1929 return diag;
1929 1930
1930 if (kdb_check_regs())1931 diag = kdb_check_regs();
1931 return 0;1932 if (diag)
1933 return diag;
1932 1934
1933 diag = KDB_BADREG;1935 diag = KDB_BADREG;
1934 for (i = 0; i < DBG_MAX_REG_NUM; i++) {1936 for (i = 0; i < DBG_MAX_REG_NUM; i++) {