Subject: Kernel 3.15: Boot problems with a PA6T board

From: Christian Zigotzky <[email-masked]>
Date: Tue, 10 Jun 2014 15:20:15 +0200

Hi All,

Could you help me to remove the changes of the PCI code, please? Or 
which patches shall I remove to get the old PCI code?

Cheers,

Christian

Am 10.06.14 12:58, schrieb Christian Zigotzky:
> Hi Michael,
>
> I have two times bisected with git. It seems the commit "PCI: Remove 
> pci_find_parent_resource() use for allocation" is the problem. I have 
> removed this patch from the kernel source code but unfortunately the 
> kernel doesn't boot. Have you another tip for me, please?
>
> Cheers,
>
> Christian
>
> Am 01.06.14 00:33, schrieb Christian Zigotzky:
>> On 31.05.2014 13:01, Christian Zigotzky wrote:
>>> On 31.05.2014 12:28, Christian Zigotzky wrote:
>>>> On 29.05.2014 04:48, Michael Ellerman wrote:
>>>>> On Wed, 2014-05-28 at 13:25 +0200, Christian Zigotzky wrote:
>>>>>> On 28.05.2014 10:53, Christian Zigotzky wrote:
>>>>>>> Hi Michael,
>>>>>>>
>>>>>>> Thank you for your answer and thank you for your help. :-)
>>>>>>>
>>>>>>> On 28.05.2014 06:23, Michael Ellerman wrote:
>>>>>>>> On Wed, 2014-05-28 at 01:08 +0200, Christian Zigotzky wrote:
>>>>>>>>
>>>>>>>> I'm going to guess that 
>>>>>>>> cd427485357c0c4b99f69719251baacf25946e11 is
>>>>>>>> BAD. Can
>>>>>>>> you please confirm or deny that?
>>>>>>> It's not BAD. It boots.
>>>>> Hmm, interesting.
>>>>>
>>>>>>>> If cd42748 is *good*, then you'll need to do a bigger bisect from
>>>>>>>> d8ff9cd to
>>>>>>>> 18a1a7a.
>>>>>> OK :-)
>>>>>>
>>>>>> -> git clone
>>>>>> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
>>>>>> linux2-git
>>>>>> -> git bisect start
>>>>>> -> git bisect good d8ff9cdf68fd119d491f3de90e1a612afc2f3b2b
>>>>>> -> git bisect bad 18a1a7a1d862ae0794a0179473d08a414dd49234
>>>>>>
>>>>>> Output:
>>>>>> Bisecting: 5900 revisions left to test after this (roughly 13 steps)
>>>>>> [cb1595563880a81dab6eab9a5ecb4520d2e76077] Merge tag 
>>>>>> 'tty-3.15-rc1' of
>>>>>> git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
>>>>>>
>>>>>> Unfortunately it doesn't boot. :-(
>>>>> OK. So you do:
>>>>>
>>>>> $ git bisect bad
>>>>>
>>>>> And it will pick a new commit for you to test. Repeat that ~13 
>>>>> times and you
>>>>> should have identified the bad commit.
>>>> OK :-)
>>>>
>>>> git bisect bad
>>>> Bisecting: 2902 revisions left to test after this (roughly 12 steps)
>>>> [b22f136071b1a797e96b3ee6fb0dc32625bd152e] staging: rtl8821ae: Fix 
>>>> quoted string split across lines <- Kernel boots :-)
>>>>
>>>> What shall I do next?
>>> OK, I know it: git bisect good
>>>
>>> -- Christian
>>>
>> git bisect good
>> Bisecting: 1494 revisions left to test after this (roughly 11 steps)
>> [3786075b5ebc8c4eaefd9e3ebf72883934fb64b3] Merge tag 
>> 'regulator-v3.15' of 
>> git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator <- 
>> Kernel boots
>>
>> git bisect good
>> Bisecting: 797 revisions left to test after this (roughly 10 steps)
>> [69dd89fd2b9406603d218cab8996cfb232d5b8b9] Merge tag 'asoc-v3.15-4' 
>> of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into 
>> for-linus <- Kernel boots
>>
>> git bisect good
>> Bisecting: 372 revisions left to test after this (roughly 9 steps)
>> [4b1779c2cf030c68aefe939d946475e4136c1895] Merge tag 
>> 'pci-v3.15-changes' of 
>> git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci <- Doesn't 
>> boot
>>
>> git bisect bad
>> Bisecting: 212 revisions left to test after this (roughly 8 steps)
>> [45b15d98a96ffdb3c608bdad952f51930c151420] Merge remote-tracking 
>> branches 'spi/topic/xilinx' and 'spi/topic/xtfpga' into spi-next <- 
>> Kernel boots
>>
>> git bisect good
>> Bisecting: 118 revisions left to test after this (roughly 7 steps)
>> [91b4adc983d8e9975bc677c2b8395631edf7b92d] Merge branch 'pci/misc' 
>> into next <- Kernel boots
>>
>> git bisect good
>> Bisecting: 41 revisions left to test after this (roughly 6 steps)
>> [26f31fb936042459d481557a83bda7a3f4d61906] Merge tag 
>> 'hwmon-for-linus' of 
>> git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging <- 
>> Kernel boots
>>
>> git bisect good
>> Bisecting: 20 revisions left to test after this (roughly 4 steps)
>> [e20fa6609a0076def469aeb799b1c25558e70042] PCI: Don't check 
>> resource_size() in pci_bus_alloc_resource() <- Doesn't boot
>>
>> git bisect bad
>> Bisecting: 10 revisions left to test after this (roughly 3 steps)
>> [cd8a4d3657c3f2cf9ce3780707be1debb8fea6e2] PCI: Check 
>> IORESOURCE_UNSET before updating BAR <- Doesn't boot
>>
>> git bisect bad
>> Bisecting: 4 revisions left to test after this (roughly 2 steps)
>> [5edb93b89f6cc3089ee283656555e7a9ad36a8a0] resource: Add 
>> resource_contains() <- Kernel boots
>>
>> git bisect good
>> Bisecting: 2 revisions left to test after this (roughly 1 step)
>> [f44116ae881868ab72274df1eff48fdbde9898af] PCI: Remove 
>> pci_find_parent_resource() use for allocation <- Doesn't boot
>>
>> git bisect bad
>> Bisecting: 0 revisions left to test after this (roughly 0 steps)
>> [d19cb803a2ff85d1b64b9628e1aec2aa76a9260b] vsprintf: Add support for 
>> IORESOURCE_UNSET in %pR <- Kernel boots
>>
>> git bisect good
>> f44116ae881868ab72274df1eff48fdbde9898af is the first bad commit
>> commit f44116ae881868ab72274df1eff48fdbde9898af
>> Author: Bjorn Helgaas <[email-masked]>
>> Date:   Wed Feb 26 11:25:58 2014 -0700
>>
>>     PCI: Remove pci_find_parent_resource() use for allocation
>>
>>     If the resource hasn't been allocated yet, 
>> pci_find_parent_resource() is
>>     documented as returning the region "where it should be allocated 
>> from."
>>     This is impossible in general because there may be several 
>> candidates: a
>>     prefetchable BAR can be put in either a prefetchable or 
>> non-prefetchable
>>     window, a transparent bridge may have overlapping positively- and
>>     subtractively-decoded windows, and a root bus may have several 
>> windows of
>>     the same type.
>>
>>     Allocation should be done by pci_bus_alloc_resource(), which 
>> iterates
>>     through all bus resources and looks for the best match, e.g., one 
>> with the
>>     desired prefetchability attributes, and falls back to less-desired
>>     possibilities.
>>
>>     The only valid use of pci_find_parent_resource() is to find the 
>> parent of
>>     an already-allocated resource so we can claim it via 
>> request_resource(),
>>     and all we need for that is a bus region of the correct type that 
>> contains
>>     the resource.
>>
>>     Note that like 8c8def26bfaa ("PCI: allow matching of prefetchable 
>> resources
>>     to non-prefetchable windows"), this depends on 
>> pci_bus_for_each_resource()
>>     iterating through positively-decoded regions before 
>> subtractively-decoded
>>     ones.  We prefer not to return a subtractively-decoded region 
>> because
>>     requesting from it will likely conflict with the overlapping 
>> positively-
>>     decoded window (see Launchpad report below).
>>
>>     Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/424142
>>     Signed-off-by: Bjorn Helgaas <[email-masked]>
>>     CC: Linus Torvalds <[email-masked]>
>>
>> :040000 040000 d9f2e04d3a635126a3c42406400b156aea3d2e30 
>> 43278454117307fa7e155fb241b16b1863ea45d0 M    drivers
>>
>>
>