/* * netsniff-ng - the packet sniffing beast * Copyright 2012 Markus Amend , Deutsche Flugsicherung GmbH * Subject to the GPL, version 2. * * IPv6 No Next Header described in RFC2460 */ #include #include #include /* for ntohs() */ #include "proto.h" #include "dissector_eth.h" #include "built_in.h" static void no_next_header(struct pkt_buff *pkt __maybe_unused) { /* * The value 59 in the Next Header field of an IPv6 header or any * extension header indicates that there is nothing following that * header. If the Payload Length field of the IPv6 header indicates the * presence of octets past the end of a header whose Next Header field * contains 59, those octets must be ignored, and passed on unchanged if * the packet is forwarded. */ tprintf(" [ No Next Header"); tprintf(" ]\n"); } static void no_next_header_less(struct pkt_buff *pkt __maybe_unused) { tprintf(" No Next Header"); } struct protocol ipv6_no_next_header_ops = { .key = 0x3B, .print_full = no_next_header, .print_less = no_next_header_less, }; e='nds-private-remove'>nds-private-remove net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaly Kuznetsov <vkuznets@redhat.com>2016-04-29 11:39:10 +0200
committerBjorn Helgaas <bhelgaas@google.com>2016-05-02 15:40:42 -0500
commitdeb22e5c84c884a129d801cf3bfde7411536998d (patch)
treeb9486f79c276115f7160b2965db5ae073485869d
parent9735a22799b9214d17d3c231fe377fc852f042e9 (diff)
PCI: hv: Report resources release after stopping the bus
Kernel hang is observed when pci-hyperv module is release with device drivers still attached. E.g., when I do 'rmmod pci_hyperv' with BCM5720 device pass-through-ed (tg3 module) I see the following: NMI watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [rmmod:2104] ... Call Trace: [<ffffffffa0641487>] tg3_read_mem+0x87/0x100 [tg3] [<ffffffffa063f000>] ? 0xffffffffa063f000 [<ffffffffa0644375>] tg3_poll_fw+0x85/0x150 [tg3] [<ffffffffa0649877>] tg3_chip_reset+0x357/0x8c0 [tg3] [<ffffffffa064ca8b>] tg3_halt+0x3b/0x190 [tg3] [<ffffffffa0657611>] tg3_stop+0x171/0x230 [tg3] ... [<ffffffffa064c550>] tg3_remove_one+0x90/0x140 [tg3] [<ffffffff813bee59>] pci_device_remove+0x39/0xc0 [<ffffffff814a3201>] __device_release_driver+0xa1/0x160 [<ffffffff814a32e3>] device_release_driver+0x23/0x30 [<ffffffff813b794a>] pci_stop_bus_device+0x8a/0xa0 [<ffffffff813b7ab6>] pci_stop_root_bus+0x36/0x60 [<ffffffffa02c3f38>] hv_pci_remove+0x238/0x260 [pci_hyperv] The problem seems to be that we report local resources release before stopping the bus and removing devices from it and device drivers may try to perform some operations with these resources on shutdown. Move resources release report after we do pci_stop_root_bus(). Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Jake Oshins <jakeo@microsoft.com>