Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pci-v7.0-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci

Pull pci fixes from Bjorn Helgaas:

- Remove power-off from pwrctrl drivers since this is now done directly
by the PCI controller drivers (Chen-Yu Tsai)

- Fix pwrctrl device node leak (Felix Gu)

- Document a TLP header decoder for AER log messages (Lukas Wunner)

* tag 'pci-v7.0-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
Documentation: PCI: Document PCIe TLP Header decoder for AER messages
PCI/pwrctrl: Fix pci_pwrctrl_is_required() device node leak
PCI/pwrctrl: Do not power off on pwrctrl device removal

+13 -14
+10
Documentation/PCI/pcieaer-howto.rst
··· 85 85 the error message to the Root Port. Please refer to PCIe specs for other 86 86 fields. 87 87 88 + The 'TLP Header' is the prefix/header of the TLP that caused the error 89 + in raw hex format. To decode the TLP Header into human-readable form 90 + one may use tlp-tool: 91 + 92 + https://github.com/mmpg-x86/tlp-tool 93 + 94 + Example usage:: 95 + 96 + curl -L https://git.kernel.org/linus/2ca1c94ce0b6 | rtlp-tool --aer 97 + 88 98 AER Ratelimits 89 99 -------------- 90 100
+3 -1
drivers/pci/pwrctrl/core.c
··· 299 299 struct device_node *remote __free(device_node) = 300 300 of_graph_get_remote_port_parent(endpoint); 301 301 if (remote) { 302 - if (of_pci_supply_present(remote)) 302 + if (of_pci_supply_present(remote)) { 303 + of_node_put(endpoint); 303 304 return true; 305 + } 304 306 } 305 307 } 306 308 }
-12
drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c
··· 68 68 return pwrseq_power_off(pwrseq->pwrseq); 69 69 } 70 70 71 - static void devm_pwrseq_pwrctrl_power_off(void *data) 72 - { 73 - struct pwrseq_pwrctrl *pwrseq = data; 74 - 75 - pwrseq_pwrctrl_power_off(&pwrseq->pwrctrl); 76 - } 77 - 78 71 static int pwrseq_pwrctrl_probe(struct platform_device *pdev) 79 72 { 80 73 const struct pwrseq_pwrctrl_pdata *pdata; ··· 93 100 if (IS_ERR(pwrseq->pwrseq)) 94 101 return dev_err_probe(dev, PTR_ERR(pwrseq->pwrseq), 95 102 "Failed to get the power sequencer\n"); 96 - 97 - ret = devm_add_action_or_reset(dev, devm_pwrseq_pwrctrl_power_off, 98 - pwrseq); 99 - if (ret) 100 - return ret; 101 103 102 104 pwrseq->pwrctrl.power_on = pwrseq_pwrctrl_power_on; 103 105 pwrseq->pwrctrl.power_off = pwrseq_pwrctrl_power_off;
-1
drivers/pci/pwrctrl/slot.c
··· 63 63 { 64 64 struct slot_pwrctrl *slot = data; 65 65 66 - slot_pwrctrl_power_off(&slot->pwrctrl); 67 66 regulator_bulk_free(slot->num_supplies, slot->supplies); 68 67 } 69 68