On Mon, Feb 26, 2018 at 11:55:34PM +0100, j...@posteo.de wrote: > When connecting to a wifi network messages like "iwm0: unhandled firmware > response 0xff/0xb8000010 rx ring" appear. > After looking at https://patchwork.kernel.org/patch/9869017/ I came up with > following patch. > The link also explains what is happening.
Thanks for this! > I'm not sure if it makes sense to log the firmware responses like the linux > kernel does. > They don't appear to have any negative effect so I decided against it. Agreed. There is no point in logging this. There are two problems with your diff: The first is that somehow it got corrupted (whitespace got mangled, lines got wrapped which shouldn't have been). Please check your mailer settings. Tip: You can mail a diff to yourself and then try to apply it until you've figured out how to make your mail client work right. I've quoted the diff I received below as-is, so if you save this mail body and feed it into patch(1) you will see what problems I saw. In this particular instance it's not a huge burden because the diff adds just 3 lines, but I basically had to rewrite your patch from scratch to apply it, which is no fun, especially for larger diffs. The next problem: You're catching this notification in a case block which handles commands we expect to get a response for, but we don't even want to parse the data contained in this notification. I think it would be better to move it to a different case: block which just does a 'break;'. There should be some of those already so you could add it there, or you could introduce a new case: block, whichever you prefer. diff --git sys/dev/pci/if_iwm.c sys/dev/pci/if_iwm.c index 476c61f0b3d..77d87fa079e 100644 --- sys/dev/pci/if_iwm.c +++ sys/dev/pci/if_iwm.c @@ -7219,6 +7219,8 @@ iwm_notif_intr(struct iwm_softc *sc) case IWM_WIDE_ID(IWM_ALWAYS_LONG_GROUP, IWM_SCAN_CFG_CMD): case IWM_WIDE_ID(IWM_ALWAYS_LONG_GROUP, IWM_SCAN_REQ_UMAC): case IWM_WIDE_ID(IWM_ALWAYS_LONG_GROUP, IWM_SCAN_ABORT_UMAC): + case IWM_WIDE_ID(IWM_SYSTEM_GROUP, + IWM_FSEQ_VER_MISMATCH_NOTIFICATION): case IWM_SCAN_OFFLOAD_REQUEST_CMD: case IWM_SCAN_OFFLOAD_ABORT_CMD: case IWM_REPLY_BEACON_FILTERING_CMD: diff --git sys/dev/pci/if_iwmreg.h sys/dev/pci/if_iwmreg.h index 3c5cfea7b23..06eef017015 100644 --- sys/dev/pci/if_iwmreg.h +++ sys/dev/pci/if_iwmreg.h @@ -1813,6 +1813,9 @@ struct iwm_agn_scd_bc_tbl { #define IWM_NET_DETECT_HOTSPOTS_CMD 0x58 #define IWM_NET_DETECT_HOTSPOTS_QUERY_CMD 0x59 +/* system group command IDs */ +#define IWM_FSEQ_VER_MISMATCH_NOTIFICATION 0xff + #define IWM_REPLY_MAX 0xff /** @@ -5820,6 +5823,7 @@ iwm_cmd_id(uint8_t opcode, uint8_t groupid, uint8_t version) /* due to the conversion, this group is special */ #define IWM_ALWAYS_LONG_GROUP 1 +#define IWM_SYSTEM_GROUP 4 struct iwm_cmd_header { uint8_t code;