--- - branch: MAIN date: Thu Mar 3 05:53:23 UTC 2022 files: - new: '1.181' old: '1.180' path: src/sys/dev/usb/if_aue.c pathrev: src/sys/dev/usb/if_aue.c@1.181 type: modified - new: '1.142' old: '1.141' path: src/sys/dev/usb/if_axe.c pathrev: src/sys/dev/usb/if_axe.c@1.142 type: modified - new: '1.84' old: '1.83' path: src/sys/dev/usb/if_axen.c pathrev: src/sys/dev/usb/if_axen.c@1.84 type: modified - new: '1.83' old: '1.82' path: src/sys/dev/usb/if_smsc.c pathrev: src/sys/dev/usb/if_smsc.c@1.83 type: modified - new: '1.88' old: '1.87' path: src/sys/dev/usb/if_udav.c pathrev: src/sys/dev/usb/if_udav.c@1.88 type: modified - new: '1.88' old: '1.87' path: src/sys/dev/usb/if_url.c pathrev: src/sys/dev/usb/if_url.c@1.88 type: modified - new: '1.49' old: '1.48' path: src/sys/dev/usb/if_ure.c pathrev: src/sys/dev/usb/if_ure.c@1.49 type: modified - new: '1.82' old: '1.81' path: src/sys/dev/usb/usbnet.c pathrev: src/sys/dev/usb/usbnet.c@1.82 type: modified id: 20220303T055323Z.cbcc2728393c12595f7a7114c726fdd343a150aa log: | usbnet: Apply hardware multicast filter updates synchronously again. To make this work: 1. Do it only under a new lock, unp_mcastlock. This lock lives at IPL_SOFTCLOCK so it can be taken from network stack callouts. It is forbidden to acquire the usbnet core lock under unp_mcastlock. 2. Do it only after usbnet_init_rx_tx and before usbnet_stop; if issued at any other time, drop the update on the floor. 3. Make usbnet_init_rx_tx apply any pending multicast filter updates under the lock before setting the flag that allows SIOCADDMULTI or SIOCDELMULTI to apply the updates. 4. Remove core lock asserts from various drivers' register access routines. This is necessary because the multicast filter updates are done with register reads/writes, but _cannot_ take the core lock when the caller holds softnet_lock. This now programs the hardware multicast filter redundantly in many drivers which already explicitly call *_uno_mcast from the *_uno_init routines. This is probably harmless, but it will likely be better to remove the explicit calls. module: src subject: 'CVS commit: src/sys/dev/usb' unixtime: '1646286803' user: riastradh