Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
  1. Jul 08, 2024
  2. Jun 11, 2024
  3. May 14, 2024
  4. May 09, 2024
    • Masahiro Yamada's avatar
      kbuild: use $(src) instead of $(srctree)/$(src) for source directory · b1992c37
      Masahiro Yamada authored
      Kbuild conventionally uses $(obj)/ for generated files, and $(src)/ for
      checked-in source files. It is merely a convention without any functional
      difference. In fact, $(obj) and $(src) are exactly the same, as defined
      in scripts/Makefile.build:
      
          src := $(obj)
      
      When the kernel is built in a separate output directory, $(src) does
      not accurately reflect the source directory location. While Kbuild
      resolves this discrepancy by specifying VPATH=$(srctree) to search for
      source files, it does not cover all cases. For example, when adding a
      header search path for local headers, -I$(srctree)/$(src) is typically
      passed to the compiler.
      
      This introduces inconsistency between upstream and downstream Makefiles
      because $(src) is used instead of $(srctree)/$(src) for the latter.
      
      To address this inconsistency, this commit changes the semantics of
      $(src) so that it always points to the directory in the source tree.
      
      Going forward, the variables used ...
      b1992c37
  5. May 07, 2024
    • Danilo Krummrich's avatar
      rust: alloc: fix dangling pointer in VecExt<T>::reserve() · 97ab3e8e
      Danilo Krummrich authored
      Currently, a Vec<T>'s ptr value, after calling Vec<T>::new(), is
      initialized to Unique::dangling(). Hence, in VecExt<T>::reserve(), we're
      passing a dangling pointer (instead of NULL) to krealloc() whenever a new
      Vec<T>'s backing storage is allocated through VecExt<T> extension
      functions.
      
      This only works as long as align_of::<T>(), used by Unique::dangling() to
      derive the dangling pointer, resolves to a value between 0x0 and
      ZERO_SIZE_PTR (0x10) and krealloc() hence treats it the same as a NULL
      pointer however.
      
      This isn't a case we should rely on, since there may be types whose
      alignment may exceed the range still covered by krealloc(), plus other
      kernel allocators are not as tolerant either.
      
      Instead, pass a real NULL pointer to krealloc_aligned() if Vec<T>'s
      capacity is zero.
      
      Fixes: 5ab560ce
      
       ("rust: alloc: update `VecExt` to take allocation flags")
      Reviewed-by: default avatarAlice Ryhl <aliceryhl@google.com>
      Reviewed-by: default avatarBoqun Feng <boqun.feng@gmail.com&gt;...>
      97ab3e8e
  6. May 05, 2024
  7. Apr 30, 2024
  8. Apr 25, 2024
  9. Apr 22, 2024
  10. Apr 16, 2024
  11. Apr 11, 2024