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
- rG37fed6c86003: [POWERPC64BE] add mrsas driver to GENERIC64
rGd0982de778a6: [POWERPC64BE] mrsas: add big-endian support
rG9fac05ba79a4: [POWERPC64BE] add mrsas driver to GENERIC64
rGe34a057ca6eb: [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
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 34986 Build 31979: arc lint + arc unit
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 | ||
1340–1341 | 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. |