This series of patches improves NCSI stack according to the comments I received after the NCSI code was merged to 4.8.rc1:
* PATCH[1/8] fixes the build warning caused by xchg() with ia64-linux-gcc. The atomic operations are replaced with {READ, WRITE}_ONCE(). * Channel ID (0x1f) is the reserved one and it cannot be valid channel ID. So we needn't try to probe channel whose ID is 0x1f. PATCH[2/8] and PATCH[3/8] are addressing this issue. * The request IDs are assigned in round-robin fashion, but it's broken. PATCH[4/8] make it work. * PATCH[5/8] and PATCH[6/8] reworks the channel monitoring to improve the code readability and its robustness. * PATCH[7/8] and PATCH[8/8] introduces ncsi_stop_dev() so that the network device can be closed and opened afterwards. No error will be seen. Gavin Shan (8): net/ncsi: Avoid unused-value build warning from ia64-linux-gcc net/ncsi: Introduce NCSI_RESERVED_CHANNEL net/ncsi: Don't probe on the reserved channel ID (0x1f) net/ncsi: Rework request index allocation net/ncsi: Allow to extend NCSI request properties net/ncsi: Rework the channel monitoring net/ncsi: Introduce ncsi_stop_dev() net/faraday: Stop NCSI device on shutdown drivers/net/ethernet/faraday/ftgmac100.c | 2 + include/net/ncsi.h | 5 + net/ncsi/internal.h | 22 ++-- net/ncsi/ncsi-aen.c | 19 ++-- net/ncsi/ncsi-cmd.c | 2 +- net/ncsi/ncsi-manage.c | 166 ++++++++++++++++++------------- net/ncsi/ncsi-rsp.c | 17 +--- 7 files changed, 137 insertions(+), 96 deletions(-) -- 2.1.0