created | 2022-11-26T11:41:17Z |
---|---|
begin | 2022-11-23T00:00:00Z |
end | 2022-11-24T00:00:00Z |
path | src/sys |
commits | 13 |
date | 2022-11-23T07:57:39Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/netinet6/in6.c | log | diff | annotate |
src/sys/netinet6/in6_var.h | log | diff | annotate | |
src/sys/netinet6/nd6.h | log | diff | annotate | |
message |
Recommit previous "Remove useless struct in6_ifextra" This was the right diff after all, I just confused myself between trees. OK bluhm --- Remove useless struct in6_ifextra in6_var.h r1.75 removed all other struct members. Now It only contains a single struct nd_ifinfo pointer, so address family specific data might as well be just that. ND_IFINFO() is the only way nd6_nbr.c and nd6.c access this data, there is no other usage of if_afdata[]. One allocation and unhelpful indirection less per interface. All under _KERNEL. OK claudio |
date | 2022-11-23T08:05:49Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/netinet6/nd6.c | log | diff | annotate |
message |
ND_IFINFO() cannot be NULL, use inline read-only idiom for clarity ND_IFINFO() always points at a valid struct nd_ifinfo; ND6_LLINFO_DELAY checks for NULL, while other cases in nd6_llinfo_timer() dereference it unconditionally. Inline all three per-case read-only usages rather than having one hoisted *ndi pointer which could be used to write. nd6_nbr.c already uses this `ND_IFINFO(ifp)->retrans' idiom which makes it immediately clear that data is only read. OK bluhm |
date | 2022-11-23T11:00:27Z | |||
---|---|---|---|---|
author | mbuhl | |||
files | src/sys/kern/exec_elf.c | log | diff | annotate |
src/sys/kern/kern_exec.c | log | diff | annotate | |
src/sys/sys/proc.h | log | diff | annotate | |
message |
cache ps_auxinfo inside the kernel, to avoid codedump() reading the copy on userland stack which points at an illicit region. ok kettenis, deraadt |
date | 2022-11-23T14:48:27Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/net/if.c | log | diff | annotate |
src/sys/net/if_var.h | log | diff | annotate | |
message |
Add *if_nd to struct ifnet, call nd6_if{at,de}tach() directly *if_afdata[] and struct domain's dom_if{at,de}tach() are only used with IPv6 Neighbour Discovery in6_dom{at,de}tach(), which allocate/init and free single struct nd_ifinfo. Set up a new ND-specific *if_nd member directly to avoid yet another layer of indirection and thus make the generic domain API obsolete. The per-interface data is only accessed in nd6.c and nd6_nbr.c through the ND_IFINFO() macro; it is allocated and freed exactly once during interface at/detach, so document it as [I]mmutable. OK bluhm mvs claudio |
date | 2022-11-23T14:48:28Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/netinet6/in6.c | log | diff | annotate |
src/sys/netinet6/in6_proto.c | log | diff | annotate | |
src/sys/netinet6/nd6.h | log | diff | annotate | |
message |
Add *if_nd to struct ifnet, call nd6_if{at,de}tach() directly *if_afdata[] and struct domain's dom_if{at,de}tach() are only used with IPv6 Neighbour Discovery in6_dom{at,de}tach(), which allocate/init and free single struct nd_ifinfo. Set up a new ND-specific *if_nd member directly to avoid yet another layer of indirection and thus make the generic domain API obsolete. The per-interface data is only accessed in nd6.c and nd6_nbr.c through the ND_IFINFO() macro; it is allocated and freed exactly once during interface at/detach, so document it as [I]mmutable. OK bluhm mvs claudio |
date | 2022-11-23T14:50:59Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/net/if.c | log | diff | annotate |
src/sys/net/if_var.h | log | diff | annotate | |
src/sys/sys/domain.h | log | diff | annotate | |
message |
Remove unused struct ifnet's *if_afdata[] and struct domain's dom_if{at,de}tach() Both made obsolete through struct ifnet's previous *if_nd addition. IPv6 Neighbour Discovery handles per-interface data directly, nothing else uses this generic domain API anymore. Outside of _KERNEL, but nothing in base uses them, either. OK bluhm mvs claudio |
date | 2022-11-23T15:12:27Z | |||
---|---|---|---|---|
author | mvs | |||
files | src/sys/net/if_pflow.c | log | diff | annotate |
src/sys/net/if_pflow.h | log | diff | annotate | |
message |
Make `so' dereference safe within pflow_output_process(). sosend() has sleep points, so the kernel lock serialisation within pflow_output_process() doesn't work as expected. The pflow(4) interface associated socket `so' could be overwritten by concurrent pflowioctl() thread. Introduce pflow(4) interface's `sc_lock' rwlock(9) to make `so' dereference safe. Since the solock() of udp(4) sockets uses netlock as backend, the `sc_lock' should be taken first. This expands a little netlock relocking within pflowioctl(). pflow_sendout_mbuf() called by pflow_output_process(), now called without kernel lock held, so the mp safe counters_pkt(9) used instead of manual `if_opackets' increment. Since if_detach() does partial ifnet destruction, now it can't be called before we finish pflow_output_process() task, otherwise we introduce use after free for interface counters. In other hand, we need to deny pflowioctl() to reschedule pflow_output_process() task. The `sc_dyind' flag introduced for that. Tested by Hrvoje Popovski. ok bluhm@ |
date | 2022-11-23T16:57:37Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/net/if.c | log | diff | annotate |
src/sys/netinet6/nd6.c | log | diff | annotate | |
src/sys/netinet6/nd6.h | log | diff | annotate | |
message |
Let nd6_if{at,de}tach() be void and take an ifp argument Do it like the rest of at/detach routines which modify a struct ifnet pointer without returning anything. OK mvs |
date | 2022-11-23T16:59:10Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/netinet6/nd6.c | log | diff | annotate |
src/sys/netinet6/nd6.h | log | diff | annotate | |
src/sys/netinet6/nd6_nbr.c | log | diff | annotate | |
message |
Inline useless ND_IFINFO() macro A single cast-free struct pointer dereference needs no indirection. ND_IFINFO() is under _KERNEL. OK mvs |
date | 2022-11-23T19:34:59Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/netinet6/nd6.h | log | diff | annotate |
message |
Remove unused struct prf_ra; dead since 2017 sys/netinet/icmp6.h r1.45 Get rid of ICMPV6CTL_ND6_DRLIST and ICMPV6CTL_ND6_PRLIST sysctls With this we can also get rid of in6_prefix and in6_defrouter. They are meaningless, the kernel no longer tracks this information. Outside of _KERNEL, but nothing in base uses it, either. codesearch.debian.net seems to agree. OK mvs claudio bluhm |
date | 2022-11-23T19:35:18Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/netinet6/nd6.h | log | diff | annotate |
message |
Remove unused struct in6_ndifreq; dead since 2013 sys/netinet6/in6_var.h r1.37 Remove unused code manipulating a default interface and its index This is a leftover from the on-link assumption behavior removal, which has been deprecated by RFC4861 anyway. Outside of _KERNEL, but nothing in base uses it, either. codesearch.debian.net seems to agree. OK mvs claudio bluhm |
date | 2022-11-23T19:35:42Z | |||
---|---|---|---|---|
author | kn | |||
files | src/sys/netinet6/nd6.h | log | diff | annotate |
message |
Remove unused NDPRF_* defines; dead since 2017 sys/netinet6/nd6.c r1.210 Remove sending of router solicitations and processing of router advertisements from the kernel. It's handled by slaacd(8) these days. Outside of _KERNEL, but nothing in base uses it, either. codesearch.debian.net seems to agree. OK mvs claudio bluhm |
date | 2022-11-23T23:43:08Z | |||
---|---|---|---|---|
author | kettenis | |||
files | src/sys/dev/fdt/files.fdt | log | diff | annotate |
src/sys/dev/fdt/pwmleds.c | log | diff | annotate | |
message |
Add pwmleds(4), a driver for PWM controlled LEDs. For now this only implements keyboard backlight support. ok kn@ |