Yes, it is indeed a deadloop, I think we didn¹t catch it because it¹s only called by an utility command which is probably never tried by anyone. I have posted a patch for it: http://review.whamcloud.com/10128 Thanks Liang On 4/28/14, 2:38 AM, "Drokin, Oleg" <oleg.drokin@xxxxxxxxx> wrote: >Thanks! > >Liang, any comments about this? > >On Apr 27, 2014, at 2:26 PM, Dan Carpenter wrote: > >> Hello Peng Tao, >> >> The patch d7e09d0397e8: "staging: add Lustre file system client >> support" from May 2, 2013, leads to the following static checker >> warning: >> >> drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c:1904 >>ksocknal_push() >> info: ignoring unreachable code. >> >> drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c >> 1904 for (i = 0; i < ksocknal_data.ksnd_peer_hash_size; i++) { >> ^^^ >> Not reached. >> >> 1905 for (j = 0; ; j++) { >> ^^^^^^^^^^^^ >> This loop is a forever loop. No break statements or exit conditions. I >> don't know how to fix this. >> >> 1906 >>read_lock(&ksocknal_data.ksnd_global_lock); >> 1907 >> 1908 index = 0; >> 1909 peer = NULL; >> 1910 >> 1911 list_for_each (tmp, >>&ksocknal_data.ksnd_peers[i]) { >> 1912 peer = list_entry(tmp, >>ksock_peer_t, >> 1913 ksnp_list); >> 1914 >> 1915 if (!((id.nid == LNET_NID_ANY || >> 1916 id.nid == >>peer->ksnp_id.nid) && >> 1917 (id.pid == LNET_PID_ANY || >> 1918 id.pid == >>peer->ksnp_id.pid))) { >> 1919 peer = NULL; >> 1920 continue; >> 1921 } >> 1922 >> 1923 if (index++ == j) { >> 1924 >>ksocknal_peer_addref(peer); >> 1925 break; >> 1926 } >> 1927 } >> 1928 >> 1929 >>read_unlock(&ksocknal_data.ksnd_global_lock); >> 1930 >> 1931 if (peer != NULL) { >> 1932 rc = 0; >> 1933 ksocknal_push_peer (peer); >> 1934 ksocknal_peer_decref(peer); >> 1935 } >> 1936 } >> 1937 >> 1938 } >> >> regards, >> dan carpenter >> > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel