[vivid][PATCH] UBUNTU: [Config] CONFIG_PCIEASPM_DEBUG=y

Chris J Arges chris.j.arges at canonical.com
Fri Dec 5 19:51:31 UTC 2014


Here are the device attributes that get added and their permissions:

static DEVICE_ATTR(link_state, 0644, link_state_show, link_state_store);
static DEVICE_ATTR(clk_ctl, 0644, clk_ctl_show, clk_ctl_store);

These are only added if link_state->{aspm_support,clkpm_capable} are
true respectively.

So this does allow for storing those variables. And looking through the
kernel I don't see many examples of this pattern; in addition the
parameter checking seems a bit weak:

static ssize_t link_state_store(struct device *dev,
                struct device_attribute *attr,
                const char *buf,
                size_t n)
{
        struct pci_dev *pdev = to_pci_dev(dev);
        struct pcie_link_state *link, *root = pdev->link_state->root;
        u32 val = buf[0] - '0', state = 0;

        if (aspm_disabled)
                return -EPERM;
        if (n < 1 || val > 3)
                return -EINVAL;
...

static ssize_t clk_ctl_store(struct device *dev,
                struct device_attribute *attr,
                const char *buf,
                size_t n)
{
        struct pci_dev *pdev = to_pci_dev(dev);
        int state;

        if (n < 1)
                return -EINVAL;
        state = buf[0]-'0';
...


--chris



On 12/05/2014 12:48 PM, Chris J Arges wrote:
> BugLink: http://bugs.launchpad.net/bugs/1398544
> 
> CONFIG_PCIEASPM_DEBUG can be used to enable/disable ASPM settings per PCIE
> device. This config option allows for easier debugging of bugs in BIOS.
> Enabling this adds sysfs entires to access ASPM settings for PCIe devices.
> 
> Signed-off-by: Chris J Arges <chris.j.arges at canonical.com>
> ---
>  debian.master/config/config.common.ubuntu | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
> index 0f4fd6e..2d2c68f 100644
> --- a/debian.master/config/config.common.ubuntu
> +++ b/debian.master/config/config.common.ubuntu
> @@ -5182,7 +5182,7 @@ CONFIG_PCI200SYN=m
>  CONFIG_PCIEAER=y
>  # CONFIG_PCIEAER_INJECT is not set
>  CONFIG_PCIEASPM=y
> -# CONFIG_PCIEASPM_DEBUG is not set
> +CONFIG_PCIEASPM_DEBUG=y
>  CONFIG_PCIEASPM_DEFAULT=y
>  # CONFIG_PCIEASPM_PERFORMANCE is not set
>  # CONFIG_PCIEASPM_POWERSAVE is not set
> 




More information about the kernel-team mailing list