intel / intel/ethernet-linux-ixgbe
Build error: conflicting types for 'class_mutex_t' on kernel 7.0.0-14-generic
- Dominant language
- C
- Stars
- 77
- Forks
- 31
- PR merge metrics
- No merged PRs in 30d
Description
## Build error: conflicting types for `class_mutex_t` on kernel 7.0.0-14
### Description
Running `sudo make install` fails to compile the ixgbe driver against Linux kernel 7.0.0-14-generic (default kernel on Ubuntu 26.04). The compiler reports a conflicting type error in the kernel's `cleanup.h` header.
### Environment
- **Kernel version:** 7.0.0-14-generic
- **Driver:** ixgbe (latest from this repo)
- **Command:** `sudo make install`
### Error output
```
/usr/src/linux-headers-7.0.0-14-generic/include/linux/cleanup.h:280:15: error: conflicting types for 'class_mutex_t'; have 'struct mutex *'
280 | typedef _type class_##_name##_t;
```
### Root cause (suspected)
It appears the ixgbe driver or one of its headers defines a symbol that conflicts with the `class_mutex_t` typedef introduced (or changed) in kernel 7.0.0-14 via `include/linux/cleanup.h`. This is likely a macro expansion clash — the `CLASS()` macro in `cleanup.h` generates typedefs like `class__t`, and if the driver defines a `mutex` class guard internally, the resulting typedef conflicts with an already-declared `struct mutex *` type.
### Steps to reproduce
1. Install kernel `7.0.0-14-generic` and its headers
2. Clone this repository
3. Run `sudo make install`
4. Observe the build error above
### Additional notes
Please let me know if you need any additional debug output, kernel config, or compiler version details.
Contributor guide
Assessment
This issue has not been assessed yet.