All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marin Mitov <mitov@issp.bas.bg>
To: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: linux-kernel@vger.kernel.org, tglx@linutronix.de,
	mingo@redhat.com, hpa@zytor.com
Subject: Re: [BUG] agpgart-amd64 not initialized in 2.6.33-rc2
Date: Mon, 28 Dec 2009 09:18:35 +0200	[thread overview]
Message-ID: <200912280918.36067.mitov@issp.bas.bg> (raw)
In-Reply-To: <20091228153704Z.fujita.tomonori@lab.ntt.co.jp>

On Monday 28 December 2009 08:37:33 am FUJITA Tomonori wrote:
> On Sun, 27 Dec 2009 17:19:39 +0200
> Marin Mitov <mitov@issp.bas.bg> wrote:
> 
> > Hi all,
> > 
> > Recently (2.6.33-rc2 kernel, x86_64, 4GB RAM) I found (in dmesg):
> > 
> > [drm:mga_do_agp_dma_bootstrap] *ERROR* Unable to acquire AGP: -19
> > 
> > and there is no /dev/agpgart device on the machine while all is OK 
> > if booting 2.6.32.2. 
> > 
> > In both kernels I have:
> > 
> > CONFIG_AGP=y
> > CONFIG_AGP_AMD64=y
> > 
> > CONFIG_GART_IOMMU=y
> > 
> > but nevertheless dmesg shows:
> > 
> > PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
> > 
> > due to quirks in via K8T800Pro host bridge.
> > 
> > Looking for the reason I found that agp_amd64_init() appears in:
> > 
> > #ifndef CONFIG_GART_IOMMU
> > module_init(agp_amd64_init);
> > module_exit(agp_amd64_cleanup);
> > #endif
> > 
> >  /*  so it is not invoked here due to CONFIG_GART_IOMMU=y   */
> > 
> > and also appears in:
> >  
> > arch/x86/kernel/pci-gart_64.c, function: gart_iommu_init()
> > 
> > The last one is part of the struct x86_init_ops(struct x86_init_iommu, as a function pointer) 
> > only if gart-iommu is successfully detected, which is not the case here due to the quirk, 
> > so agp_amd64_init() is not invoked here neither. 
> > 
> > Sure, configuring the kernel without CONFIG_GART_IOMMU=y (which is not user selectable)
> > 
> > should solve the problem, but usually users do not know about quirks, so it should
> > work even as set here (and it works up to 2.6.32.2). I believe the bug is introduced
> > with the changes in the order iommu detect/init works for 2.6.33.
> > 
> > I am here for additional info/tests.
> 
> Sorry about the regression. Does this works?

Yes, it works for me, thank you.

Marin Mitov

> diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c
> index 2fb2e6c..5aa7a58 100644
> --- a/drivers/char/agp/amd64-agp.c
> +++ b/drivers/char/agp/amd64-agp.c
> @@ -725,9 +725,14 @@ static struct pci_driver agp_amd64_pci_driver = {
>  int __init agp_amd64_init(void)
>  {
>  	int err = 0;
> +	static int done = 0;
>  
>  	if (agp_off)
>  		return -EINVAL;
> +
> +	if (done++)
> +		return agp_bridges_found ? 0 : -ENODEV;
> +
>  	err = pci_register_driver(&agp_amd64_pci_driver);
>  	if (err < 0)
>  		return err;
> @@ -771,12 +776,8 @@ static void __exit agp_amd64_cleanup(void)
>  	pci_unregister_driver(&agp_amd64_pci_driver);
>  }
>  
> -/* On AMD64 the PCI driver needs to initialize this driver early
> -   for the IOMMU, so it has to be called via a backdoor. */
> -#ifndef CONFIG_GART_IOMMU
>  module_init(agp_amd64_init);
>  module_exit(agp_amd64_cleanup);
> -#endif
>  
>  MODULE_AUTHOR("Dave Jones <davej@redhat.com>, Andi Kleen");
>  module_param(agp_try_unsupported, bool, 0);
> 

  reply	other threads:[~2009-12-28  7:20 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-27 15:19 [BUG] agpgart-amd64 not initialized in 2.6.33-rc2 Marin Mitov
2009-12-28  6:37 ` FUJITA Tomonori
2009-12-28  7:18   ` Marin Mitov [this message]
2009-12-28  8:10     ` Ingo Molnar
2009-12-28  9:11       ` FUJITA Tomonori
2009-12-30 12:21         ` [tip:x86/urgent] x86/agp: Fix agp_amd64_init() initialization with CONFIG_GART_IOMMU enabled tip-bot for FUJITA Tomonori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200912280918.36067.mitov@issp.bas.bg \
    --to=mitov@issp.bas.bg \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.