lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 9 Sep 2014 17:49:19 -0400
From:	Murali Karicheri <m-karicheri2@...com>
To:	Arnd Bergmann <arnd@...db.de>
CC:	<linux-arm-kernel@...ts.infradead.org>, <robh+dt@...nel.org>,
	<pawel.moll@....com>, <mark.rutland@....com>,
	<ijc+devicetree@...lion.org.uk>, <galak@...eaurora.org>,
	<bhelgaas@...gle.com>, <devicetree@...r.kernel.org>,
	<linux-kernel@...r.kernel.org>, <linux-pci@...r.kernel.org>
Subject: Re: [PATCH v2 2/2] PCI: keystone: update to support multiple pci
 ports

On 09/09/2014 05:09 PM, Arnd Bergmann wrote:
> On Tuesday 09 September 2014 16:42:46 Murali Karicheri wrote:
>>>>
>>>>       /* update the Vendor ID */
>>>> -    vendor_device_id = readl(ks_pcie->va_reg_pciid);
>>>> -    writew((vendor_device_id>>   16), pp->dbi_base + PCI_DEVICE_ID);
>>>> +    writew(ks_pcie->device_id, pp->dbi_base + PCI_DEVICE_ID);
>>>>
>>>>       /* update the DEV_STAT_CTRL to publish right mrrs */
>>>>       val = readl(pp->dbi_base + PCIE_CAP_BASE + PCI_EXP_DEVCTL);
>>>
>>> This change must have slipped in accidentally, at least it's not
>>> described in the changelog. Should this be another patch?
>>> The change seems useful.
>> Are you referring to mrrs or update to device id?  device id is in a SoC
>> register at index2 and is read and updated by the driver here. MRRS
>> update was originally in the code.
>>
>
> I meant the device id change. Maybe you accidentally did 'git commit
> --amend' during a rebase and that replaced the real changelog with
> the one of the patch in front of it and merged the two patches?
>
Actually this is an inteded. The vendor ID is in a register indicated by
reg offset and as per the device spec, it needs to be read and updated 
by the software. Now since multiple instances of PCI device needs to be 
read the same register, the reading happens in the probe() and same is 
unmapped after that.

+	ks_pcie->device_id = readl(reg_p) >> 16;
+	devm_iounmap(dev, reg_p);
+	devm_release_mem_region(dev, res->start, resource_size(res));

Afetr that in ks_pcie_host_init(), it update the device_id in the RC's 
config space.

Thanks

Murali
> That happened to me a few times and would explain the strange mix
> of two changes.
>
> 	Arnd

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ