We would hang forever when passing a zero to string_get_size().Furthermore, string_get_size() would produce decimals on a value smallenough to be exact. Finally, a few formatting issues are inconsistentwith standard SI style guidelines.

- If the value is less than the divisor, skip the entire rounding step. This prints out all small values including zero as integers, without decimals.- Add a space between the value and the symbol for the unit, consistent with standard SI practice.- Lower case k in kB since we are talking about powers of 10.- Finally, change "int" to "unsigned int" in one place to shut up a gcc warning when compiling the code out-of-kernel for testing.