--- - branch: netbsd-8 date: Fri Nov 17 20:24:05 UTC 2017 files: - new: 1.18.6.2 old: 1.18.6.1 path: src/sys/net/if_llatbl.c pathrev: src/sys/net/if_llatbl.c@1.18.6.2 type: modified - new: 1.10.8.2 old: 1.10.8.1 path: src/sys/net/if_llatbl.h pathrev: src/sys/net/if_llatbl.h@1.10.8.2 type: modified - new: 1.250.2.3 old: 1.250.2.2 path: src/sys/netinet/if_arp.c pathrev: src/sys/netinet/if_arp.c@1.250.2.3 type: modified - new: 1.203.2.2 old: 1.203.2.1 path: src/sys/netinet/in.c pathrev: src/sys/netinet/in.c@1.203.2.2 type: modified - new: 1.245.2.2 old: 1.245.2.1 path: src/sys/netinet6/in6.c pathrev: src/sys/netinet6/in6.c@1.245.2.2 type: modified - new: 1.232.2.3 old: 1.232.2.2 path: src/sys/netinet6/nd6.c pathrev: src/sys/netinet6/nd6.c@1.232.2.3 type: modified id: 20171117T202405Z.336f147f22f8d1a03375712709c1b519e486e98c log: "Pull up following revision(s) (requested by ozaki-r in ticket #353):\n\tsys/net/if_llatbl.c: 1.22\n\tsys/net/if_llatbl.h: 1.13\n\tsys/netinet/if_arp.c: 1.254\n\tsys/netinet/in.c: 1.208-1.209\n\tsys/netinet6/in6.c: 1.249-1.250\n\tsys/netinet6/nd6.c: 1.237\nRemove redundant KASSERTMSG\nThe function is static, has just one caller and the caller does the same check.\n--\nFix a deadlock between a route update and lltable\nIt happens because rtalloc1 is called from lltable with holding\nIF_AFDATA_WLOCK.\nIf a route update is in action, rtalloc1 would wait for its completion with\nholding IF_AFDATA_WLOCK. At the same moment, a softint (e.g., arpintr) may try\nto take IF_AFDATA_WLOCK and get stuck on it. Unfortunately the stuck softint\nprevents the route update from progressing because the route update calls\npsref_target_destroy that needs the softint to complete.\nA resource allocation graph of the senario looks like this:\n route update =(psref_target_destroy)=> softint => IF_AFDATA_WLOCK\n \ =(rt_update_wait)=> route update\nFix the deadlock by pulling rtalloc1 out of the lltable codes inside\nIF_AFDATA_WLOCK.\nNote that the deadlock happens only if NET_MPSAFE is enabled.\n" module: src subject: 'CVS commit: [netbsd-8] src/sys' unixtime: '1510950245' user: snj