All of lore.kernel.org
 help / color / mirror / Atom feed
From: Noriyuki Fujii <n-fujii@np.css.fujitsu.com>
To: megaraidlinux@lsi.com, linux-scsi@vger.kernel.org
Subject: [PATCH 2nd try] PCI legacy I/O port free driver - Making MegaRAID SAS driver
Date: Wed, 14 Oct 2009 10:03:35 +0900	[thread overview]
Message-ID: <4AD52367.7050500@np.css.fujitsu.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 660 bytes --]

Hi,

Here's my 2nd try of the following post.

http://marc.info/?l=linux-scsi&m=124962265606425&w=2

I made a patch for MegaRAID sas driver to make PCI legacy I/O port free.

The way to make PCI legacy I/O port free is the same as Fusion-MPT
driver's and it has been merged into 2.6.30.4.

This has already been fixed in e1000 and lpfc.

As a result of the above, the driver can handle its device even when
there are a huge number of PCI devices being used on the system and no
I/O port region assigned to the device.

I'm not in the linux-scsi mailing list.
Please reply to the following address.

 E-Mail: n-fujii@np.css.fujitsu.com

Thanks,
Noriyuki Fujii


[-- Attachment #2: linux-2.6-scsi-megaraid-sas-make-legacy-i-o-port-free.patch --]
[-- Type: text/plain, Size: 1617 bytes --]

--- megaraid_sasOrg.c	2009-07-02 16:31:17.000000000 +0900
+++ megaraid_sasMod.c	2009-08-06 11:24:42.000000000 +0900
@@ -2573,7 +2573,9 @@ static int megasas_init_mfi(struct megas
 		instance->base_addr = pci_resource_start(instance->pdev, 0);
 	}
 
-	if (pci_request_regions(instance->pdev, "megasas: LSI")) {
+        if (pci_request_selected_regions(instance->pdev,
+					 pci_select_bars(instance->pdev, IORESOURCE_MEM),
+					 "megasas: LSI")) {
 		printk(KERN_DEBUG "megasas: IO memory region busy!\n");
 		return -EBUSY;
 	}
@@ -2719,7 +2721,8 @@ static int megasas_init_mfi(struct megas
 	iounmap(instance->reg_set);
 
       fail_ioremap:
-	pci_release_regions(instance->pdev);
+        pci_release_selected_regions(instance->pdev,
+				     pci_select_bars(instance->pdev, IORESOURCE_MEM));
 
 	return -EINVAL;
 }
@@ -2739,7 +2742,8 @@ static void megasas_release_mfi(struct m
 
 	iounmap(instance->reg_set);
 
-	pci_release_regions(instance->pdev);
+        pci_release_selected_regions(instance->pdev,
+				     pci_select_bars(instance->pdev, IORESOURCE_MEM));
 }
 
 /**
@@ -3049,7 +3053,7 @@ megasas_probe_one(struct pci_dev *pdev, 
 	/*
 	 * PCI prepping: enable device set bus mastering and dma mask
 	 */
-	rval = pci_enable_device(pdev);
+        rval = pci_enable_device_mem(pdev);
 
 	if (rval) {
 		return rval;
@@ -3343,7 +3347,7 @@ megasas_resume(struct pci_dev *pdev)
 	/*
 	 * PCI prepping: enable device set bus mastering and dma mask
 	 */
-	rval = pci_enable_device(pdev);
+        rval = pci_enable_device_mem(pdev);
 
 	if (rval) {
 		printk(KERN_INFO "megasas: Enable device failed\n");

             reply	other threads:[~2009-10-14  1:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-14  1:03 Noriyuki Fujii [this message]
2009-11-30 19:14 ` [PATCH 2nd try] PCI legacy I/O port free driver - Making MegaRAID SAS driver Yang, Bo
2009-11-30 20:49 ` James Bottomley
2009-12-01  1:15   ` Noriyuki Fujii

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=4AD52367.7050500@np.css.fujitsu.com \
    --to=n-fujii@np.css.fujitsu.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=megaraidlinux@lsi.com \
    /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.