Add endiannes conversions in order to support big-endian platforms. Tests were done in a AVAGO Invader SAS Controller (pci vendor=0x1000 device=0x005d). This patch was tested using a Power9 and Intel machines.
Details
- Reviewers
jhibbits bdragon luporl alfredo sumit.saxena_broadcom.com - Commits
- R10:37fed6c86003: [POWERPC64BE] add mrsas driver to GENERIC64
R10:d0982de778a6: [POWERPC64BE] mrsas: add big-endian support
R10:9fac05ba79a4: [POWERPC64BE] add mrsas driver to GENERIC64
R10:e34a057ca6eb: [POWERPC64BE] mrsas: add big-endian support
Compile and install kernel with changes and see if tools like 'geom disk list' and 'camcontrol inquiry' are able to fetch disk information.
Diff Detail
- Repository
- R10 FreeBSD src repository
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Event Timeline
The changes look good to me overall.
Since you have tested them on an Intel machine and most of them are calls to convert from/to LE, that are no-ops on LE machines, the chance of introducing regressions should be low.
I have just a couple of nitpicks.
sys/dev/mrsas/mrsas.c | ||
---|---|---|
910–912 | Why was this check removed? | |
3105 | Is there any reason to remove this trace message? | |
4643–4652 | It would be nice to save le16toh(pd_addr->deviceId) to a temporary variable and use it instead of repeating the le16toh() calls. | |
sys/dev/mrsas/mrsas_fp.c | ||
1339–1340 | This comment should be removed. |
sys/dev/mrsas/mrsas.c | ||
---|---|---|
910–912 | This check was preventing the driver to continue execution and as it is not present on linux driver 'megaraid' that works on the same card so I removed it from here. I found no issues doing this. |