---
# System prepended metadata

title: Meeting 2023-12-06
tags: [meeting notes]

---

# Meeting Meeting 2023-12-06
<!-- Leave your topic starting with ### in the relevant sections below -->

## Critical
<!-- bugs, soundness issues, urgent patches/reviews etc. -->

## Status Reports
<!-- You want to report on something you are working on/request reviews.
Or you want to know the status of something someone else is doing -->

### Field Projection

PR for compiler support: https://github.com/rust-lang/rust/pull/118658

## Discussion Questions
<!-- Anything that requires lengthy discussion/more general questions also fit here -->

### Speculation gadgets

Alice: I'm not able to make it tonight, but I'd like to hear what you all think about [this thread](https://lore.kernel.org/all/20231206123402.GE30174@noisy.programming.kicks-ass.net/).

> So I still object to these on the ground that they're obvious and
trivial speculation gadgets.
>
> We should not have (exported) functions that are basically a single
dereference of a pointer argument.

Lot's of discussion follows.
Core points:
- we do not completely understand how the vulnerabiliy works, don't you need to be able to call the function, i.e. already have root access (or, we guess maybe another vulnerability)?
- this might also be a problem in C, there surely are small functions that do this on the C side

We still want to eliminate these functions from image for performance reasons:
- we want to fix this, different solutions came up:
    - use clang to create LLVM-IR of the C functions and rustc to create LLVM-IR of the rust code and then link the LLVM-IR, this would prevent the symbol export.
    - Andreas uses a trick that sounds similar: https://github.com/metaspace/linux/commit/89c304539c271fd52e17b918b25cf14c40d0c2bd
- but this should not block upstreaming binder/other things

Do two things in paralell:
- Miguel will write a mail to Kees asking for more context
- Miguel will add this problem to some issue and then Alice if you want you can send a mail that references this issue and explains our way forward

### Bindgen

Bindgen can generate inline static function wrapper: https://github.com/rust-lang/rust-bindgen/pull/2335

### Inline assembly complaints from Peter
Asm goto support
* Gary discussed with Amanieu (project-inline-asm lead) and he's supportive for adding asm-goto. Just need to find some time to implement it.

Lack of memory operand
* Gary: I also discussed this with Amanieu, it seems that he thinks on some architecture there're multiple different addressing modes and it's hard to have a uniform `mem` constraint. Need to look into the design.

Boqun: I will add these two in https://github.com/Rust-for-Linux/linux/issues/514 comments.

Gary: They're language features, despite exposed as `core` macros.

## Miscellaneous
<!-- stuff that does not fit into other categories -->
