All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Takashi Sakamoto <o-takashi@sakamocchi.jp>,
	linux1394-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, adamg@pobox.com,
	stable@vger.kernel.org, Jiri Slaby <jirislaby@kernel.org>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Tobias Gruetzmacher <tobias-lists@23.gs>
Subject: Re: [PATCH] firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards
Date: Sat, 30 Dec 2023 06:56:40 +0800	[thread overview]
Message-ID: <202312300612.hrtBWbnp-lkp@intel.com> (raw)
In-Reply-To: <20231229035735.11127-1-o-takashi@sakamocchi.jp>

Hi Takashi,

kernel test robot noticed the following build errors:

[auto build test ERROR on ieee1394-linux1394/for-next]
[also build test ERROR on ieee1394-linux1394/for-linus linus/master v6.7-rc7 next-20231222]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Takashi-Sakamoto/firewire-ohci-suppress-unexpected-system-reboot-in-AMD-Ryzen-machines-and-ASM108x-VT630x-PCIe-cards/20231229-120311
base:   https://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394.git for-next
patch link:    https://lore.kernel.org/r/20231229035735.11127-1-o-takashi%40sakamocchi.jp
patch subject: [PATCH] firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards
config: loongarch-randconfig-r081-20231229 (https://download.01.org/0day-ci/archive/20231230/202312300612.hrtBWbnp-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231230/202312300612.hrtBWbnp-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312300612.hrtBWbnp-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/firewire/ohci.c: In function 'pci_probe':
>> drivers/firewire/ohci.c:3679:70: error: macro "detect_vt630x_with_asm1083_on_amd_ryzen_machine" passed 2 arguments, but takes just 1
    3679 |         if (detect_vt630x_with_asm1083_on_amd_ryzen_machine(dev, ohci))
         |                                                                      ^
   drivers/firewire/ohci.c:3573: note: macro "detect_vt630x_with_asm1083_on_amd_ryzen_machine" defined here
    3573 | #define detect_vt630x_with_asm1083_on_amd_ryzen_machine(pdev)   false
         | 
>> drivers/firewire/ohci.c:3679:13: error: 'detect_vt630x_with_asm1083_on_amd_ryzen_machine' undeclared (first use in this function)
    3679 |         if (detect_vt630x_with_asm1083_on_amd_ryzen_machine(dev, ohci))
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/firewire/ohci.c:3679:13: note: each undeclared identifier is reported only once for each function it appears in


vim +/detect_vt630x_with_asm1083_on_amd_ryzen_machine +3679 drivers/firewire/ohci.c

  3617	
  3618	static int pci_probe(struct pci_dev *dev,
  3619				       const struct pci_device_id *ent)
  3620	{
  3621		struct fw_ohci *ohci;
  3622		u32 bus_options, max_receive, link_speed, version;
  3623		u64 guid;
  3624		int i, err;
  3625		size_t size;
  3626	
  3627		if (dev->vendor == PCI_VENDOR_ID_PINNACLE_SYSTEMS) {
  3628			dev_err(&dev->dev, "Pinnacle MovieBoard is not yet supported\n");
  3629			return -ENOSYS;
  3630		}
  3631	
  3632		ohci = devres_alloc(release_ohci, sizeof(*ohci), GFP_KERNEL);
  3633		if (ohci == NULL)
  3634			return -ENOMEM;
  3635		fw_card_initialize(&ohci->card, &ohci_driver, &dev->dev);
  3636		pci_set_drvdata(dev, ohci);
  3637		pmac_ohci_on(dev);
  3638		devres_add(&dev->dev, ohci);
  3639	
  3640		err = pcim_enable_device(dev);
  3641		if (err) {
  3642			dev_err(&dev->dev, "failed to enable OHCI hardware\n");
  3643			return err;
  3644		}
  3645	
  3646		pci_set_master(dev);
  3647		pci_write_config_dword(dev, OHCI1394_PCI_HCI_Control, 0);
  3648	
  3649		spin_lock_init(&ohci->lock);
  3650		mutex_init(&ohci->phy_reg_mutex);
  3651	
  3652		INIT_WORK(&ohci->bus_reset_work, bus_reset_work);
  3653	
  3654		if (!(pci_resource_flags(dev, 0) & IORESOURCE_MEM) ||
  3655		    pci_resource_len(dev, 0) < OHCI1394_REGISTER_SIZE) {
  3656			ohci_err(ohci, "invalid MMIO resource\n");
  3657			return -ENXIO;
  3658		}
  3659	
  3660		err = pcim_iomap_regions(dev, 1 << 0, ohci_driver_name);
  3661		if (err) {
  3662			ohci_err(ohci, "request and map MMIO resource unavailable\n");
  3663			return -ENXIO;
  3664		}
  3665		ohci->registers = pcim_iomap_table(dev)[0];
  3666	
  3667		for (i = 0; i < ARRAY_SIZE(ohci_quirks); i++)
  3668			if ((ohci_quirks[i].vendor == dev->vendor) &&
  3669			    (ohci_quirks[i].device == (unsigned short)PCI_ANY_ID ||
  3670			     ohci_quirks[i].device == dev->device) &&
  3671			    (ohci_quirks[i].revision == (unsigned short)PCI_ANY_ID ||
  3672			     ohci_quirks[i].revision >= dev->revision)) {
  3673				ohci->quirks = ohci_quirks[i].flags;
  3674				break;
  3675			}
  3676		if (param_quirks)
  3677			ohci->quirks = param_quirks;
  3678	
> 3679		if (detect_vt630x_with_asm1083_on_amd_ryzen_machine(dev, ohci))
  3680			ohci->quirks |= QUIRK_REBOOT_BY_CYCLE_TIMER_READ;
  3681	
  3682		/*
  3683		 * Because dma_alloc_coherent() allocates at least one page,
  3684		 * we save space by using a common buffer for the AR request/
  3685		 * response descriptors and the self IDs buffer.
  3686		 */
  3687		BUILD_BUG_ON(AR_BUFFERS * sizeof(struct descriptor) > PAGE_SIZE/4);
  3688		BUILD_BUG_ON(SELF_ID_BUF_SIZE > PAGE_SIZE/2);
  3689		ohci->misc_buffer = dmam_alloc_coherent(&dev->dev, PAGE_SIZE, &ohci->misc_buffer_bus,
  3690							GFP_KERNEL);
  3691		if (!ohci->misc_buffer)
  3692			return -ENOMEM;
  3693	
  3694		err = ar_context_init(&ohci->ar_request_ctx, ohci, 0,
  3695				      OHCI1394_AsReqRcvContextControlSet);
  3696		if (err < 0)
  3697			return err;
  3698	
  3699		err = ar_context_init(&ohci->ar_response_ctx, ohci, PAGE_SIZE/4,
  3700				      OHCI1394_AsRspRcvContextControlSet);
  3701		if (err < 0)
  3702			return err;
  3703	
  3704		err = context_init(&ohci->at_request_ctx, ohci,
  3705				   OHCI1394_AsReqTrContextControlSet, handle_at_packet);
  3706		if (err < 0)
  3707			return err;
  3708	
  3709		err = context_init(&ohci->at_response_ctx, ohci,
  3710				   OHCI1394_AsRspTrContextControlSet, handle_at_packet);
  3711		if (err < 0)
  3712			return err;
  3713	
  3714		reg_write(ohci, OHCI1394_IsoRecvIntMaskSet, ~0);
  3715		ohci->ir_context_channels = ~0ULL;
  3716		ohci->ir_context_support = reg_read(ohci, OHCI1394_IsoRecvIntMaskSet);
  3717		reg_write(ohci, OHCI1394_IsoRecvIntMaskClear, ~0);
  3718		ohci->ir_context_mask = ohci->ir_context_support;
  3719		ohci->n_ir = hweight32(ohci->ir_context_mask);
  3720		size = sizeof(struct iso_context) * ohci->n_ir;
  3721		ohci->ir_context_list = devm_kzalloc(&dev->dev, size, GFP_KERNEL);
  3722		if (!ohci->ir_context_list)
  3723			return -ENOMEM;
  3724	
  3725		reg_write(ohci, OHCI1394_IsoXmitIntMaskSet, ~0);
  3726		ohci->it_context_support = reg_read(ohci, OHCI1394_IsoXmitIntMaskSet);
  3727		/* JMicron JMB38x often shows 0 at first read, just ignore it */
  3728		if (!ohci->it_context_support) {
  3729			ohci_notice(ohci, "overriding IsoXmitIntMask\n");
  3730			ohci->it_context_support = 0xf;
  3731		}
  3732		reg_write(ohci, OHCI1394_IsoXmitIntMaskClear, ~0);
  3733		ohci->it_context_mask = ohci->it_context_support;
  3734		ohci->n_it = hweight32(ohci->it_context_mask);
  3735		size = sizeof(struct iso_context) * ohci->n_it;
  3736		ohci->it_context_list = devm_kzalloc(&dev->dev, size, GFP_KERNEL);
  3737		if (!ohci->it_context_list)
  3738			return -ENOMEM;
  3739	
  3740		ohci->self_id     = ohci->misc_buffer     + PAGE_SIZE/2;
  3741		ohci->self_id_bus = ohci->misc_buffer_bus + PAGE_SIZE/2;
  3742	
  3743		bus_options = reg_read(ohci, OHCI1394_BusOptions);
  3744		max_receive = (bus_options >> 12) & 0xf;
  3745		link_speed = bus_options & 0x7;
  3746		guid = ((u64) reg_read(ohci, OHCI1394_GUIDHi) << 32) |
  3747			reg_read(ohci, OHCI1394_GUIDLo);
  3748	
  3749		if (!(ohci->quirks & QUIRK_NO_MSI))
  3750			pci_enable_msi(dev);
  3751		err = devm_request_irq(&dev->dev, dev->irq, irq_handler,
  3752				       pci_dev_msi_enabled(dev) ? 0 : IRQF_SHARED, ohci_driver_name, ohci);
  3753		if (err < 0) {
  3754			ohci_err(ohci, "failed to allocate interrupt %d\n", dev->irq);
  3755			goto fail_msi;
  3756		}
  3757	
  3758		err = fw_card_add(&ohci->card, max_receive, link_speed, guid);
  3759		if (err)
  3760			goto fail_msi;
  3761	
  3762		version = reg_read(ohci, OHCI1394_Version) & 0x00ff00ff;
  3763		ohci_notice(ohci,
  3764			    "added OHCI v%x.%x device as card %d, "
  3765			    "%d IR + %d IT contexts, quirks 0x%x%s\n",
  3766			    version >> 16, version & 0xff, ohci->card.index,
  3767			    ohci->n_ir, ohci->n_it, ohci->quirks,
  3768			    reg_read(ohci, OHCI1394_PhyUpperBound) ?
  3769				", physUB" : "");
  3770	
  3771		return 0;
  3772	
  3773	 fail_msi:
  3774		pci_disable_msi(dev);
  3775	
  3776		return err;
  3777	}
  3778	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2023-12-29 22:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-29  3:57 [PATCH] firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards Takashi Sakamoto
2023-12-29 22:56 ` kernel test robot [this message]
2023-12-30  2:30 ` Mario Limonciello
2024-01-02  3:55   ` Takashi Sakamoto
2023-12-30  8:43 ` kernel test robot

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=202312300612.hrtBWbnp-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=adamg@pobox.com \
    --cc=jirislaby@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux1394-devel@lists.sourceforge.net \
    --cc=mario.limonciello@amd.com \
    --cc=o-takashi@sakamocchi.jp \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --cc=tobias-lists@23.gs \
    /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.