USB Error since installation of Manjaro Linux (2016)
TRANSPORT=kernel SYSLOG_FACILITY=0 SYSLOG_IDENTIFIER=kernel PRIORITY=3 _KERNEL_SUBSYSTEM=usb _KERNEL_DEVICE=+usb:8-5 MESSAGE=usb 8-5: string descriptor 0 read error: -22 lsusb -t Bus 08.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/5p, 12M |__ Port 5: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 5: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M Best Regards Alexander -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 2/4] cdc-acm: fix possible invalid access when processing notification
On 3/18/2017 9:52 PM, Tobias Herzog wrote: Notifications may only be 8 bytes so long. Accessing the 9th and s/so//. "So long and thanks for all the fish!" :-) 10th byte of unimplemented/unknown notifications may be insecure. Also check the length of known notifications before accessing anything behind the 8th byte. Signed-off-by: Tobias Herzog [...] MBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: USB Error since installation of Manjaro Linux (2016)
On Sun, Mar 19, 2017 at 10:11:44AM +0100, Alexander von Mentzer wrote: > > TRANSPORT=kernel > SYSLOG_FACILITY=0 SYSLOG_IDENTIFIER=kernel PRIORITY=3 _KERNEL_SUBSYSTEM=usb > _KERNEL_DEVICE=+usb:8-5 MESSAGE=usb 8-5: string descriptor 0 read error: -22 > > lsusb -t Bus 08.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/5p, 12M |__ > Port 5: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 5: Dev 3, If > 1, Class=Wireless, Driver=btusb, 12M > There's not much we can get here, is the device working? Is it not? What happens? Reading a single string isn't a big deal, are there any other kernel logs? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH RFC 0/7] phylib MMD accessor cleanups
Hi, This series cleans up the phylib MMD accessors. We have two accessors at present, phy_(read|write)_mmd() and phy_(read|write)_mmd_indirect() The _indirect methods access the MMD registers via a clause 22 phy, whereas the non-_indirect methods acess via clause 45 accesses. Current PHY-independent parts of phylib (such as EEE) access the MMD registers via the _indirect methods, which is no good if you have a clause 45 PHY that doesn't respond to clause 22 accesses. In order to make these features available, we need to rework these accessors such that they can access the MMD registers using a method dependent on the clause that the PHY conforms with. This series of patches does exactly that - we merge the functionality of the indirect accesses into the clause 45 accessors, and use these exclusively to access MMD registers. Internally, the new clause independent MMD accessors indirect via the PHY drivers read_mmd/write_mmd methods if present, otherwise fall back to using clause 45 accesses if the PHY is a clause 45 phy, or clause 22 indirect accesses if the PHY is clause 22. Note: confusingly, phy_read_mmd_indirect() vs phy_read_mmd() switches the order of prtad and devad, which means that converting between the two is not a simple matter of just replacing the function name. Same applies for the write methods. drivers/net/phy/Makefile | 2 +- drivers/net/phy/bcm-phy-lib.c | 12 ++--- drivers/net/phy/dp83867.c | 25 +- drivers/net/phy/intel-xway.c | 26 +- drivers/net/phy/micrel.c | 13 +++-- drivers/net/phy/microchip.c | 5 +- drivers/net/phy/phy-core.c| 101 ++ drivers/net/phy/phy.c | 110 -- drivers/net/phy/phy_device.c | 4 +- drivers/net/usb/lan78xx.c | 10 ++-- include/linux/phy.h | 80 +- 11 files changed, 178 insertions(+), 210 deletions(-) -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH RFC 3/7] net: lan78xx: update for phy_(read|write)_mmd_indirect() removal
lan78xx appears to use phylib in a rather weird way, accessing the PHY partly through phylib, and partly by makign direct accesses to it, including to the Clause 45 registers. As the indirect MMD accessors are going away, update this driver to use the plain phy_(read|write)_mmd() accessors instead. Signed-off-by: Russell King --- drivers/net/usb/lan78xx.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 9889a70ff4f6..d885e0325422 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -1952,10 +1952,10 @@ static int lan8835_fixup(struct phy_device *phydev) struct lan78xx_net *dev = netdev_priv(phydev->attached_dev); /* LED2/PME_N/IRQ_N/RGMII_ID pin to IRQ_N mode */ - buf = phy_read_mmd_indirect(phydev, 0x8010, 3); + buf = phy_read_mmd(phydev, MDIO_MMD_PCS, 0x8010); buf &= ~0x1800; buf |= 0x0800; - phy_write_mmd_indirect(phydev, 0x8010, 3, buf); + phy_write_mmd(phydev, MDIO_MMD_PCS, 0x8010, buf); /* RGMII MAC TXC Delay Enable */ ret = lan78xx_write_reg(dev, MAC_RGMII_ID, @@ -1975,11 +1975,11 @@ static int ksz9031rnx_fixup(struct phy_device *phydev) /* Micrel9301RNX PHY configuration */ /* RGMII Control Signal Pad Skew */ - phy_write_mmd_indirect(phydev, 4, 2, 0x0077); + phy_write_mmd(phydev, MDIO_MMD_WIS, 4, 0x0077); /* RGMII RX Data Pad Skew */ - phy_write_mmd_indirect(phydev, 5, 2, 0x); + phy_write_mmd(phydev, MDIO_MMD_WIS, 5, 0x); /* RGMII RX Clock Pad Skew */ - phy_write_mmd_indirect(phydev, 8, 2, 0x1FF); + phy_write_mmd(phydev, MDIO_MMD_WIS, 8, 0x1FF); dev->interface = PHY_INTERFACE_MODE_RGMII_RXID; -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/2] usb: phy: Introduce one extcon device into usb phy
Hi Baolin, [auto build test ERROR on balbi-usb/next] [also build test ERROR on v4.11-rc2 next-20170310] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Baolin-Wang/usb-phy-Introduce-one-extcon-device-into-usb-phy/20170319-175509 base: https://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git next config: i386-randconfig-i1-201712 (attached as .config) compiler: gcc-4.8 (Debian 4.8.4-1) 4.8.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): drivers/built-in.o: In function `usb_add_extcon': >> phy.c:(.text+0x231580): undefined reference to `extcon_get_edev_by_phandle' >> phy.c:(.text+0x2315d0): undefined reference to >> `devm_extcon_register_notifier' phy.c:(.text+0x231629): undefined reference to `devm_extcon_register_notifier' --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip
Re: USB Error since installation of Manjaro Linux (2016)
Hi, everything works fine. Was just courious about the error. So far theire are no other kernel errors. Best Regards, Alex -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH RFC 0/7] phylib MMD accessor cleanups
On Sun, Mar 19, 2017 at 10:59:44AM +, Russell King - ARM Linux wrote: > Hi, > > This series cleans up the phylib MMD accessors. We have two accessors > at present, phy_(read|write)_mmd() and phy_(read|write)_mmd_indirect() > > The _indirect methods access the MMD registers via a clause 22 phy, > whereas the non-_indirect methods acess via clause 45 accesses. > > Current PHY-independent parts of phylib (such as EEE) access the MMD > registers via the _indirect methods, which is no good if you have a > clause 45 PHY that doesn't respond to clause 22 accesses. > > In order to make these features available, we need to rework these > accessors such that they can access the MMD registers using a method > dependent on the clause that the PHY conforms with. > > This series of patches does exactly that - we merge the functionality > of the indirect accesses into the clause 45 accessors, and use these > exclusively to access MMD registers. Internally, the new clause > independent MMD accessors indirect via the PHY drivers read_mmd/write_mmd > methods if present, otherwise fall back to using clause 45 accesses if > the PHY is a clause 45 phy, or clause 22 indirect accesses if the PHY > is clause 22. > > Note: confusingly, phy_read_mmd_indirect() vs phy_read_mmd() switches > the order of prtad and devad, which means that converting between the > two is not a simple matter of just replacing the function name. Same > applies for the write methods. Hi Russell This all looks good, apart from the one typo i spotted. Reviewed-by: Andrew Lunn Andrew -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 01/15] block: DAC960: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Acked-by: Peter Senna Tschudin Tested-by: Peter Senna Tschudin --- drivers/block/DAC960.c | 38 ++ drivers/block/DAC960.h | 4 ++-- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c index 26a51be..a0883ad 100644 --- a/drivers/block/DAC960.c +++ b/drivers/block/DAC960.c @@ -268,17 +268,17 @@ static bool DAC960_CreateAuxiliaryStructures(DAC960_Controller_T *Controller) void *AllocationPointer = NULL; void *ScatterGatherCPU = NULL; dma_addr_t ScatterGatherDMA; - struct pci_pool *ScatterGatherPool; + struct dma_pool *ScatterGatherPool; void *RequestSenseCPU = NULL; dma_addr_t RequestSenseDMA; - struct pci_pool *RequestSensePool = NULL; + struct dma_pool *RequestSensePool = NULL; if (Controller->FirmwareType == DAC960_V1_Controller) { CommandAllocationLength = offsetof(DAC960_Command_T, V1.EndMarker); CommandAllocationGroupSize = DAC960_V1_CommandAllocationGroupSize; - ScatterGatherPool = pci_pool_create("DAC960_V1_ScatterGather", - Controller->PCIDevice, + ScatterGatherPool = dma_pool_create("DAC960_V1_ScatterGather", + &Controller->PCIDevice->dev, DAC960_V1_ScatterGatherLimit * sizeof(DAC960_V1_ScatterGatherSegment_T), sizeof(DAC960_V1_ScatterGatherSegment_T), 0); if (ScatterGatherPool == NULL) @@ -290,18 +290,18 @@ static bool DAC960_CreateAuxiliaryStructures(DAC960_Controller_T *Controller) { CommandAllocationLength = offsetof(DAC960_Command_T, V2.EndMarker); CommandAllocationGroupSize = DAC960_V2_CommandAllocationGroupSize; - ScatterGatherPool = pci_pool_create("DAC960_V2_ScatterGather", - Controller->PCIDevice, + ScatterGatherPool = dma_pool_create("DAC960_V2_ScatterGather", + &Controller->PCIDevice->dev, DAC960_V2_ScatterGatherLimit * sizeof(DAC960_V2_ScatterGatherSegment_T), sizeof(DAC960_V2_ScatterGatherSegment_T), 0); if (ScatterGatherPool == NULL) return DAC960_Failure(Controller, "AUXILIARY STRUCTURE CREATION (SG)"); - RequestSensePool = pci_pool_create("DAC960_V2_RequestSense", - Controller->PCIDevice, sizeof(DAC960_SCSI_RequestSense_T), + RequestSensePool = dma_pool_create("DAC960_V2_RequestSense", + &Controller->PCIDevice->dev, sizeof(DAC960_SCSI_RequestSense_T), sizeof(int), 0); if (RequestSensePool == NULL) { - pci_pool_destroy(ScatterGatherPool); + dma_pool_destroy(ScatterGatherPool); return DAC960_Failure(Controller, "AUXILIARY STRUCTURE CREATION (SG)"); } @@ -335,16 +335,16 @@ static bool DAC960_CreateAuxiliaryStructures(DAC960_Controller_T *Controller) Command->Next = Controller->FreeCommands; Controller->FreeCommands = Command; Controller->Commands[CommandIdentifier-1] = Command; - ScatterGatherCPU = pci_pool_alloc(ScatterGatherPool, GFP_ATOMIC, + ScatterGatherCPU = dma_pool_alloc(ScatterGatherPool, GFP_ATOMIC, &ScatterGatherDMA); if (ScatterGatherCPU == NULL) return DAC960_Failure(Controller, "AUXILIARY STRUCTURE CREATION"); if (RequestSensePool != NULL) { - RequestSenseCPU = pci_pool_alloc(RequestSensePool, GFP_ATOMIC, + RequestSenseCPU = dma_pool_alloc(RequestSensePool, GFP_ATOMIC, &RequestSenseDMA); if (RequestSenseCPU == NULL) { -pci_pool_free(ScatterGatherPool, ScatterGatherCPU, +dma_pool_free(ScatterGatherPool, ScatterGatherCPU, ScatterGatherDMA); return DAC960_Failure(Controller, "AUXILIARY STRUCTURE CREATION"); @@ -379,8 +379,8 @@ static bool DAC960_CreateAuxiliaryStructures(DAC960_Controller_T *Controller) static void DAC960_DestroyAuxiliaryStructures(DAC960_Controller_T *Controller) { int i; - struct pci_pool *ScatterGatherPool = Controller->ScatterGatherPool; - struct pci_pool *RequestSensePool = NULL; + struct dma_pool *ScatterGatherPool = Controller->ScatterGatherPool; + struct dma_pool *RequestSensePool = NULL; void *ScatterGatherCPU; dma_addr_t ScatterGatherDMA; void *RequestSenseCPU; @@ -411,9 +411,9 @@ static void DAC960_DestroyAuxiliaryStructures(DAC960_Controller_T *Controller) RequestSenseDMA = Command->V2.RequestSenseDMA; } if (ScatterGatherCPU != NULL) - pci_pool_free(ScatterGatherPool, ScatterGatherCPU, ScatterGatherDMA); + dma_pool_free(ScatterGatherPool, ScatterGatherCPU, ScatterGatherDMA); if (Reque
[PATCH v6 12/15] scsi: mpt3sas: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Reviewed-by: Peter Senna Tschudin --- drivers/scsi/mpt3sas/mpt3sas_base.c | 73 + 1 file changed, 34 insertions(+), 39 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c index 5b7aec5..5ae1c23 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -3200,9 +3200,8 @@ _base_release_memory_pools(struct MPT3SAS_ADAPTER *ioc) } if (ioc->sense) { - pci_pool_free(ioc->sense_dma_pool, ioc->sense, ioc->sense_dma); - if (ioc->sense_dma_pool) - pci_pool_destroy(ioc->sense_dma_pool); + dma_pool_free(ioc->sense_dma_pool, ioc->sense, ioc->sense_dma); + dma_pool_destroy(ioc->sense_dma_pool); dexitprintk(ioc, pr_info(MPT3SAS_FMT "sense_pool(0x%p): free\n", ioc->name, ioc->sense)); @@ -3210,9 +3209,8 @@ _base_release_memory_pools(struct MPT3SAS_ADAPTER *ioc) } if (ioc->reply) { - pci_pool_free(ioc->reply_dma_pool, ioc->reply, ioc->reply_dma); - if (ioc->reply_dma_pool) - pci_pool_destroy(ioc->reply_dma_pool); + dma_pool_free(ioc->reply_dma_pool, ioc->reply, ioc->reply_dma); + dma_pool_destroy(ioc->reply_dma_pool); dexitprintk(ioc, pr_info(MPT3SAS_FMT "reply_pool(0x%p): free\n", ioc->name, ioc->reply)); @@ -3220,10 +3218,9 @@ _base_release_memory_pools(struct MPT3SAS_ADAPTER *ioc) } if (ioc->reply_free) { - pci_pool_free(ioc->reply_free_dma_pool, ioc->reply_free, + dma_pool_free(ioc->reply_free_dma_pool, ioc->reply_free, ioc->reply_free_dma); - if (ioc->reply_free_dma_pool) - pci_pool_destroy(ioc->reply_free_dma_pool); + dma_pool_destroy(ioc->reply_free_dma_pool); dexitprintk(ioc, pr_info(MPT3SAS_FMT "reply_free_pool(0x%p): free\n", ioc->name, ioc->reply_free)); @@ -3234,7 +3231,7 @@ _base_release_memory_pools(struct MPT3SAS_ADAPTER *ioc) do { rps = &ioc->reply_post[i]; if (rps->reply_post_free) { - pci_pool_free( + dma_pool_free( ioc->reply_post_free_dma_pool, rps->reply_post_free, rps->reply_post_free_dma); @@ -3246,8 +3243,7 @@ _base_release_memory_pools(struct MPT3SAS_ADAPTER *ioc) } while (ioc->rdpq_array_enable && (++i < ioc->reply_queue_count)); - if (ioc->reply_post_free_dma_pool) - pci_pool_destroy(ioc->reply_post_free_dma_pool); + dma_pool_destroy(ioc->reply_post_free_dma_pool); kfree(ioc->reply_post); } @@ -3268,12 +3264,11 @@ _base_release_memory_pools(struct MPT3SAS_ADAPTER *ioc) if (ioc->chain_lookup) { for (i = 0; i < ioc->chain_depth; i++) { if (ioc->chain_lookup[i].chain_buffer) - pci_pool_free(ioc->chain_dma_pool, + dma_pool_free(ioc->chain_dma_pool, ioc->chain_lookup[i].chain_buffer, ioc->chain_lookup[i].chain_buffer_dma); } - if (ioc->chain_dma_pool) - pci_pool_destroy(ioc->chain_dma_pool); + dma_pool_destroy(ioc->chain_dma_pool); free_pages((ulong)ioc->chain_lookup, ioc->chain_pages); ioc->chain_lookup = NULL; } @@ -3448,23 +3443,23 @@ _base_allocate_memory_pools(struct MPT3SAS_ADAPTER *ioc) ioc->name); goto out; } - ioc->reply_post_free_dma_pool = pci_pool_create("reply_post_free pool", - ioc->pdev, sz, 16, 0); + ioc->reply_post_free_dma_pool = dma_pool_create("reply_post_free pool", + &ioc->pdev->dev, sz, 16, 0); if (!ioc->reply_post_free_dma_pool) { pr_err(MPT3SAS_FMT -"reply_post_free pool: pci_pool_create failed\n", +"reply_post_free pool: dma_pool_create failed\n", ioc->name); goto out; } i = 0; do { ioc->reply_post[i].reply_post_free = - pci_pool_alloc(ioc->reply_post_free_dma_pool, + dma_pool_alloc(ioc->reply_post_free_dma_pool, GFP_KERNEL,
[PATCH v6 13/15] scsi: mvsas: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Reviewed-by: Peter Senna Tschudin --- drivers/scsi/mvsas/mv_init.c | 6 +++--- drivers/scsi/mvsas/mv_sas.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c index 8280046..41d2276 100644 --- a/drivers/scsi/mvsas/mv_init.c +++ b/drivers/scsi/mvsas/mv_init.c @@ -125,8 +125,7 @@ static void mvs_free(struct mvs_info *mvi) else slot_nr = MVS_CHIP_SLOT_SZ; - if (mvi->dma_pool) - pci_pool_destroy(mvi->dma_pool); + dma_pool_destroy(mvi->dma_pool); if (mvi->tx) dma_free_coherent(mvi->dev, @@ -296,7 +295,8 @@ static int mvs_alloc(struct mvs_info *mvi, struct Scsi_Host *shost) goto err_out; sprintf(pool_name, "%s%d", "mvs_dma_pool", mvi->id); - mvi->dma_pool = pci_pool_create(pool_name, mvi->pdev, MVS_SLOT_BUF_SZ, 16, 0); + mvi->dma_pool = dma_pool_create(pool_name, &mvi->pdev->dev, + MVS_SLOT_BUF_SZ, 16, 0); if (!mvi->dma_pool) { printk(KERN_DEBUG "failed to create dma pool %s.\n", pool_name); goto err_out; diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c index c7cc803..ee81d10 100644 --- a/drivers/scsi/mvsas/mv_sas.c +++ b/drivers/scsi/mvsas/mv_sas.c @@ -790,7 +790,7 @@ static int mvs_task_prep(struct sas_task *task, struct mvs_info *mvi, int is_tmf slot->n_elem = n_elem; slot->slot_tag = tag; - slot->buf = pci_pool_alloc(mvi->dma_pool, GFP_ATOMIC, &slot->buf_dma); + slot->buf = dma_pool_alloc(mvi->dma_pool, GFP_ATOMIC, &slot->buf_dma); if (!slot->buf) { rc = -ENOMEM; goto err_out_tag; @@ -840,7 +840,7 @@ static int mvs_task_prep(struct sas_task *task, struct mvs_info *mvi, int is_tmf return rc; err_out_slot_buf: - pci_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma); + dma_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma); err_out_tag: mvs_tag_free(mvi, tag); err_out: @@ -918,7 +918,7 @@ static void mvs_slot_task_free(struct mvs_info *mvi, struct sas_task *task, } if (slot->buf) { - pci_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma); + dma_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma); slot->buf = NULL; } list_del_init(&slot->entry); -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 11/15] scsi: megaraid: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Reviewed-by: Peter Senna Tschudin Acked-by: Sumit Saxena --- drivers/scsi/megaraid/megaraid_mbox.c | 33 +++ drivers/scsi/megaraid/megaraid_mm.c | 32 +++--- drivers/scsi/megaraid/megaraid_sas_base.c | 29 +++-- drivers/scsi/megaraid/megaraid_sas_fusion.c | 66 + 4 files changed, 77 insertions(+), 83 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c index f0987f2..7dfc2e2 100644 --- a/drivers/scsi/megaraid/megaraid_mbox.c +++ b/drivers/scsi/megaraid/megaraid_mbox.c @@ -1153,8 +1153,8 @@ megaraid_mbox_setup_dma_pools(adapter_t *adapter) // Allocate memory for 16-bytes aligned mailboxes - raid_dev->mbox_pool_handle = pci_pool_create("megaraid mbox pool", - adapter->pdev, + raid_dev->mbox_pool_handle = dma_pool_create("megaraid mbox pool", + &adapter->pdev->dev, sizeof(mbox64_t) + 16, 16, 0); @@ -1164,7 +1164,7 @@ megaraid_mbox_setup_dma_pools(adapter_t *adapter) mbox_pci_blk = raid_dev->mbox_pool; for (i = 0; i < MBOX_MAX_SCSI_CMDS; i++) { - mbox_pci_blk[i].vaddr = pci_pool_alloc( + mbox_pci_blk[i].vaddr = dma_pool_alloc( raid_dev->mbox_pool_handle, GFP_KERNEL, &mbox_pci_blk[i].dma_addr); @@ -1181,8 +1181,8 @@ megaraid_mbox_setup_dma_pools(adapter_t *adapter) * share common memory pool. Passthru structures piggyback on memory * allocted to extended passthru since passthru is smaller of the two */ - raid_dev->epthru_pool_handle = pci_pool_create("megaraid mbox pthru", - adapter->pdev, sizeof(mraid_epassthru_t), 128, 0); + raid_dev->epthru_pool_handle = dma_pool_create("megaraid mbox pthru", + &adapter->pdev->dev, sizeof(mraid_epassthru_t), 128, 0); if (raid_dev->epthru_pool_handle == NULL) { goto fail_setup_dma_pool; @@ -1190,7 +1190,7 @@ megaraid_mbox_setup_dma_pools(adapter_t *adapter) epthru_pci_blk = raid_dev->epthru_pool; for (i = 0; i < MBOX_MAX_SCSI_CMDS; i++) { - epthru_pci_blk[i].vaddr = pci_pool_alloc( + epthru_pci_blk[i].vaddr = dma_pool_alloc( raid_dev->epthru_pool_handle, GFP_KERNEL, &epthru_pci_blk[i].dma_addr); @@ -1202,8 +1202,8 @@ megaraid_mbox_setup_dma_pools(adapter_t *adapter) // Allocate memory for each scatter-gather list. Request for 512 bytes // alignment for each sg list - raid_dev->sg_pool_handle = pci_pool_create("megaraid mbox sg", - adapter->pdev, + raid_dev->sg_pool_handle = dma_pool_create("megaraid mbox sg", + &adapter->pdev->dev, sizeof(mbox_sgl64) * MBOX_MAX_SG_SIZE, 512, 0); @@ -1213,7 +1213,7 @@ megaraid_mbox_setup_dma_pools(adapter_t *adapter) sg_pci_blk = raid_dev->sg_pool; for (i = 0; i < MBOX_MAX_SCSI_CMDS; i++) { - sg_pci_blk[i].vaddr = pci_pool_alloc( + sg_pci_blk[i].vaddr = dma_pool_alloc( raid_dev->sg_pool_handle, GFP_KERNEL, &sg_pci_blk[i].dma_addr); @@ -1249,29 +1249,26 @@ megaraid_mbox_teardown_dma_pools(adapter_t *adapter) sg_pci_blk = raid_dev->sg_pool; for (i = 0; i < MBOX_MAX_SCSI_CMDS && sg_pci_blk[i].vaddr; i++) { - pci_pool_free(raid_dev->sg_pool_handle, sg_pci_blk[i].vaddr, + dma_pool_free(raid_dev->sg_pool_handle, sg_pci_blk[i].vaddr, sg_pci_blk[i].dma_addr); } - if (raid_dev->sg_pool_handle) - pci_pool_destroy(raid_dev->sg_pool_handle); + dma_pool_destroy(raid_dev->sg_pool_handle); epthru_pci_blk = raid_dev->epthru_pool; for (i = 0; i < MBOX_MAX_SCSI_CMDS && epthru_pci_blk[i].vaddr; i++) { - pci_pool_free(raid_dev->epthru_pool_handle, + dma_pool_free(raid_dev->epthru_pool_handle, epthru_pci_blk[i].vaddr, epthru_pci_blk[i].dma_addr); } - if (raid_dev->epthru_pool_handle) - pci_pool_destroy(raid_dev->epthru_pool_h
[PATCH v6 07/15] wireless: ipw2200: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Reviewed-by: Peter Senna Tschudin --- drivers/net/wireless/intel/ipw2x00/ipw2200.c | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2200.c b/drivers/net/wireless/intel/ipw2x00/ipw2200.c index 5ef3c5c..93dfe47 100644 --- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c @@ -3211,7 +3211,7 @@ static int ipw_load_firmware(struct ipw_priv *priv, u8 * data, size_t len) struct fw_chunk *chunk; int total_nr = 0; int i; - struct pci_pool *pool; + struct dma_pool *pool; void **virts; dma_addr_t *phys; @@ -3228,9 +3228,10 @@ static int ipw_load_firmware(struct ipw_priv *priv, u8 * data, size_t len) kfree(virts); return -ENOMEM; } - pool = pci_pool_create("ipw2200", priv->pci_dev, CB_MAX_LENGTH, 0, 0); + pool = dma_pool_create("ipw2200", &priv->pci_dev->dev, CB_MAX_LENGTH, 0, + 0); if (!pool) { - IPW_ERROR("pci_pool_create failed\n"); + IPW_ERROR("dma_pool_create failed\n"); kfree(phys); kfree(virts); return -ENOMEM; @@ -3255,7 +3256,7 @@ static int ipw_load_firmware(struct ipw_priv *priv, u8 * data, size_t len) nr = (chunk_len + CB_MAX_LENGTH - 1) / CB_MAX_LENGTH; for (i = 0; i < nr; i++) { - virts[total_nr] = pci_pool_alloc(pool, GFP_KERNEL, + virts[total_nr] = dma_pool_alloc(pool, GFP_KERNEL, &phys[total_nr]); if (!virts[total_nr]) { ret = -ENOMEM; @@ -3299,9 +3300,9 @@ static int ipw_load_firmware(struct ipw_priv *priv, u8 * data, size_t len) } out: for (i = 0; i < total_nr; i++) - pci_pool_free(pool, virts[i], phys[i]); + dma_pool_free(pool, virts[i], phys[i]); - pci_pool_destroy(pool); + dma_pool_destroy(pool); kfree(phys); kfree(virts); -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 09/15] scsi: csiostor: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. It also updates the name of some variables and the content of comments, accordingly. Signed-off-by: Romain Perier Reviewed-by: Peter Senna Tschudin --- drivers/scsi/csiostor/csio_hw.h | 2 +- drivers/scsi/csiostor/csio_init.c | 11 ++- drivers/scsi/csiostor/csio_scsi.c | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/scsi/csiostor/csio_hw.h b/drivers/scsi/csiostor/csio_hw.h index 029bef8..55b04fc 100644 --- a/drivers/scsi/csiostor/csio_hw.h +++ b/drivers/scsi/csiostor/csio_hw.h @@ -465,7 +465,7 @@ struct csio_hw { struct csio_pport pport[CSIO_MAX_PPORTS]; /* Ports (XGMACs) */ struct csio_hw_params params; /* Hw parameters */ - struct pci_pool *scsi_pci_pool; /* PCI pool for SCSI */ + struct dma_pool *scsi_dma_pool; /* DMA pool for SCSI */ mempool_t *mb_mempool;/* Mailbox memory pool*/ mempool_t *rnode_mempool; /* rnode memory pool */ diff --git a/drivers/scsi/csiostor/csio_init.c b/drivers/scsi/csiostor/csio_init.c index dbe416f..292964c 100644 --- a/drivers/scsi/csiostor/csio_init.c +++ b/drivers/scsi/csiostor/csio_init.c @@ -485,9 +485,10 @@ csio_resource_alloc(struct csio_hw *hw) if (!hw->rnode_mempool) goto err_free_mb_mempool; - hw->scsi_pci_pool = pci_pool_create("csio_scsi_pci_pool", hw->pdev, - CSIO_SCSI_RSP_LEN, 8, 0); - if (!hw->scsi_pci_pool) + hw->scsi_dma_pool = dma_pool_create("csio_scsi_dma_pool", + &hw->pdev->dev, CSIO_SCSI_RSP_LEN, + 8, 0); + if (!hw->scsi_dma_pool) goto err_free_rn_pool; return 0; @@ -505,8 +506,8 @@ csio_resource_alloc(struct csio_hw *hw) static void csio_resource_free(struct csio_hw *hw) { - pci_pool_destroy(hw->scsi_pci_pool); - hw->scsi_pci_pool = NULL; + dma_pool_destroy(hw->scsi_dma_pool); + hw->scsi_dma_pool = NULL; mempool_destroy(hw->rnode_mempool); hw->rnode_mempool = NULL; mempool_destroy(hw->mb_mempool); diff --git a/drivers/scsi/csiostor/csio_scsi.c b/drivers/scsi/csiostor/csio_scsi.c index a1ff75f..dab0d3f 100644 --- a/drivers/scsi/csiostor/csio_scsi.c +++ b/drivers/scsi/csiostor/csio_scsi.c @@ -2445,7 +2445,7 @@ csio_scsim_init(struct csio_scsim *scm, struct csio_hw *hw) /* Allocate Dma buffers for Response Payload */ dma_buf = &ioreq->dma_buf; - dma_buf->vaddr = pci_pool_alloc(hw->scsi_pci_pool, GFP_KERNEL, + dma_buf->vaddr = dma_pool_alloc(hw->scsi_dma_pool, GFP_KERNEL, &dma_buf->paddr); if (!dma_buf->vaddr) { csio_err(hw, @@ -2485,7 +2485,7 @@ csio_scsim_init(struct csio_scsim *scm, struct csio_hw *hw) ioreq = (struct csio_ioreq *)tmp; dma_buf = &ioreq->dma_buf; - pci_pool_free(hw->scsi_pci_pool, dma_buf->vaddr, + dma_pool_free(hw->scsi_dma_pool, dma_buf->vaddr, dma_buf->paddr); kfree(ioreq); @@ -2516,7 +2516,7 @@ csio_scsim_exit(struct csio_scsim *scm) ioreq = (struct csio_ioreq *)tmp; dma_buf = &ioreq->dma_buf; - pci_pool_free(scm->hw->scsi_pci_pool, dma_buf->vaddr, + dma_pool_free(scm->hw->scsi_dma_pool, dma_buf->vaddr, dma_buf->paddr); kfree(ioreq); -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 10/15] scsi: lpfc: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. It also updates some comments, accordingly. Signed-off-by: Romain Perier Reviewed-by: Peter Senna Tschudin --- drivers/scsi/lpfc/lpfc.h | 14 +++--- drivers/scsi/lpfc/lpfc_init.c | 16 +++ drivers/scsi/lpfc/lpfc_mem.c | 106 - drivers/scsi/lpfc/lpfc_nvme.c | 6 +-- drivers/scsi/lpfc/lpfc_nvmet.c | 4 +- drivers/scsi/lpfc/lpfc_scsi.c | 12 ++--- 6 files changed, 77 insertions(+), 81 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h index 257bbdd..c6f82db 100644 --- a/drivers/scsi/lpfc/lpfc.h +++ b/drivers/scsi/lpfc/lpfc.h @@ -935,13 +935,13 @@ struct lpfc_hba { struct list_head active_rrq_list; spinlock_t hbalock; - /* pci_mem_pools */ - struct pci_pool *lpfc_sg_dma_buf_pool; - struct pci_pool *lpfc_mbuf_pool; - struct pci_pool *lpfc_hrb_pool; /* header receive buffer pool */ - struct pci_pool *lpfc_drb_pool; /* data receive buffer pool */ - struct pci_pool *lpfc_hbq_pool; /* SLI3 hbq buffer pool */ - struct pci_pool *txrdy_payload_pool; + /* dma_mem_pools */ + struct dma_pool *lpfc_sg_dma_buf_pool; + struct dma_pool *lpfc_mbuf_pool; + struct dma_pool *lpfc_hrb_pool; /* header receive buffer pool */ + struct dma_pool *lpfc_drb_pool; /* data receive buffer pool */ + struct dma_pool *lpfc_hbq_pool; /* SLI3 hbq buffer pool */ + struct dma_pool *txrdy_payload_pool; struct lpfc_dma_pool lpfc_mbuf_safety_pool; mempool_t *mbox_mem_pool; diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index 2697d49..0ffdd722 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -3151,7 +3151,7 @@ lpfc_scsi_free(struct lpfc_hba *phba) list_for_each_entry_safe(sb, sb_next, &phba->lpfc_scsi_buf_list_put, list) { list_del(&sb->list); - pci_pool_free(phba->lpfc_sg_dma_buf_pool, sb->data, + dma_pool_free(phba->lpfc_sg_dma_buf_pool, sb->data, sb->dma_handle); kfree(sb); phba->total_scsi_bufs--; @@ -3162,7 +3162,7 @@ lpfc_scsi_free(struct lpfc_hba *phba) list_for_each_entry_safe(sb, sb_next, &phba->lpfc_scsi_buf_list_get, list) { list_del(&sb->list); - pci_pool_free(phba->lpfc_sg_dma_buf_pool, sb->data, + dma_pool_free(phba->lpfc_sg_dma_buf_pool, sb->data, sb->dma_handle); kfree(sb); phba->total_scsi_bufs--; @@ -3193,7 +3193,7 @@ lpfc_nvme_free(struct lpfc_hba *phba) list_for_each_entry_safe(lpfc_ncmd, lpfc_ncmd_next, &phba->lpfc_nvme_buf_list_put, list) { list_del(&lpfc_ncmd->list); - pci_pool_free(phba->lpfc_sg_dma_buf_pool, lpfc_ncmd->data, + dma_pool_free(phba->lpfc_sg_dma_buf_pool, lpfc_ncmd->data, lpfc_ncmd->dma_handle); kfree(lpfc_ncmd); phba->total_nvme_bufs--; @@ -3204,7 +3204,7 @@ lpfc_nvme_free(struct lpfc_hba *phba) list_for_each_entry_safe(lpfc_ncmd, lpfc_ncmd_next, &phba->lpfc_nvme_buf_list_get, list) { list_del(&lpfc_ncmd->list); - pci_pool_free(phba->lpfc_sg_dma_buf_pool, lpfc_ncmd->data, + dma_pool_free(phba->lpfc_sg_dma_buf_pool, lpfc_ncmd->data, lpfc_ncmd->dma_handle); kfree(lpfc_ncmd); phba->total_nvme_bufs--; @@ -3517,7 +3517,7 @@ lpfc_sli4_scsi_sgl_update(struct lpfc_hba *phba) list_remove_head(&scsi_sgl_list, psb, struct lpfc_scsi_buf, list); if (psb) { - pci_pool_free(phba->lpfc_sg_dma_buf_pool, + dma_pool_free(phba->lpfc_sg_dma_buf_pool, psb->data, psb->dma_handle); kfree(psb); } @@ -3652,7 +3652,7 @@ lpfc_sli4_nvme_sgl_update(struct lpfc_hba *phba) list_remove_head(&nvme_sgl_list, lpfc_ncmd, struct lpfc_nvme_buf, list); if (lpfc_ncmd) { - pci_pool_free(phba->lpfc_sg_dma_buf_pool, + dma_pool_free(phba->lpfc_sg_dma_buf_pool, lpfc_ncmd->data, lpfc_ncmd->dma_handle); kfree(lpfc_ncmd); @@ -6673,8 +6673,8 @@ lpfc_create_shost(struct lpfc_hba
[PATCH v6 08/15] scsi: be2iscsi: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Acked-by: Peter Senna Tschudin Tested-by: Peter Senna Tschudin --- drivers/scsi/be2iscsi/be_iscsi.c | 6 +++--- drivers/scsi/be2iscsi/be_main.c | 6 +++--- drivers/scsi/be2iscsi/be_main.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/scsi/be2iscsi/be_iscsi.c b/drivers/scsi/be2iscsi/be_iscsi.c index a484457..d76ef77 100644 --- a/drivers/scsi/be2iscsi/be_iscsi.c +++ b/drivers/scsi/be2iscsi/be_iscsi.c @@ -87,8 +87,8 @@ struct iscsi_cls_session *beiscsi_session_create(struct iscsi_endpoint *ep, return NULL; sess = cls_session->dd_data; beiscsi_sess = sess->dd_data; - beiscsi_sess->bhs_pool = pci_pool_create("beiscsi_bhs_pool", - phba->pcidev, + beiscsi_sess->bhs_pool = dma_pool_create("beiscsi_bhs_pool", + &phba->pcidev->dev, sizeof(struct be_cmd_bhs), 64, 0); if (!beiscsi_sess->bhs_pool) @@ -113,7 +113,7 @@ void beiscsi_session_destroy(struct iscsi_cls_session *cls_session) struct beiscsi_session *beiscsi_sess = sess->dd_data; printk(KERN_INFO "In beiscsi_session_destroy\n"); - pci_pool_destroy(beiscsi_sess->bhs_pool); + dma_pool_destroy(beiscsi_sess->bhs_pool); iscsi_session_teardown(cls_session); } diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c index 32b2713..dd43480 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c @@ -4307,7 +4307,7 @@ static void beiscsi_cleanup_task(struct iscsi_task *task) pwrb_context = &phwi_ctrlr->wrb_context[cri_index]; if (io_task->cmd_bhs) { - pci_pool_free(beiscsi_sess->bhs_pool, io_task->cmd_bhs, + dma_pool_free(beiscsi_sess->bhs_pool, io_task->cmd_bhs, io_task->bhs_pa.u.a64.address); io_task->cmd_bhs = NULL; task->hdr = NULL; @@ -4424,7 +4424,7 @@ static int beiscsi_alloc_pdu(struct iscsi_task *task, uint8_t opcode) struct beiscsi_session *beiscsi_sess = beiscsi_conn->beiscsi_sess; dma_addr_t paddr; - io_task->cmd_bhs = pci_pool_alloc(beiscsi_sess->bhs_pool, + io_task->cmd_bhs = dma_pool_alloc(beiscsi_sess->bhs_pool, GFP_ATOMIC, &paddr); if (!io_task->cmd_bhs) return -ENOMEM; @@ -4551,7 +4551,7 @@ static int beiscsi_alloc_pdu(struct iscsi_task *task, uint8_t opcode) if (io_task->pwrb_handle) free_wrb_handle(phba, pwrb_context, io_task->pwrb_handle); io_task->pwrb_handle = NULL; - pci_pool_free(beiscsi_sess->bhs_pool, io_task->cmd_bhs, + dma_pool_free(beiscsi_sess->bhs_pool, io_task->cmd_bhs, io_task->bhs_pa.u.a64.address); io_task->cmd_bhs = NULL; return -ENOMEM; diff --git a/drivers/scsi/be2iscsi/be_main.h b/drivers/scsi/be2iscsi/be_main.h index 2188579..cf58d31 100644 --- a/drivers/scsi/be2iscsi/be_main.h +++ b/drivers/scsi/be2iscsi/be_main.h @@ -446,7 +446,7 @@ struct beiscsi_hba { test_bit(BEISCSI_HBA_ONLINE, &phba->state)) struct beiscsi_session { - struct pci_pool *bhs_pool; + struct dma_pool *bhs_pool; }; /** -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 02/15] dmaengine: pch_dma: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Acked-by: Peter Senna Tschudin Tested-by: Peter Senna Tschudin --- drivers/dma/pch_dma.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c index f9028e9..afd8f27 100644 --- a/drivers/dma/pch_dma.c +++ b/drivers/dma/pch_dma.c @@ -123,7 +123,7 @@ struct pch_dma_chan { struct pch_dma { struct dma_device dma; void __iomem *membase; - struct pci_pool *pool; + struct dma_pool *pool; struct pch_dma_regs regs; struct pch_dma_desc_regs ch_regs[MAX_CHAN_NR]; struct pch_dma_chan channels[MAX_CHAN_NR]; @@ -437,7 +437,7 @@ static struct pch_dma_desc *pdc_alloc_desc(struct dma_chan *chan, gfp_t flags) struct pch_dma *pd = to_pd(chan->device); dma_addr_t addr; - desc = pci_pool_zalloc(pd->pool, flags, &addr); + desc = dma_pool_zalloc(pd->pool, flags, &addr); if (desc) { INIT_LIST_HEAD(&desc->tx_list); dma_async_tx_descriptor_init(&desc->txd, chan); @@ -549,7 +549,7 @@ static void pd_free_chan_resources(struct dma_chan *chan) spin_unlock_irq(&pd_chan->lock); list_for_each_entry_safe(desc, _d, &tmp_list, desc_node) - pci_pool_free(pd->pool, desc, desc->txd.phys); + dma_pool_free(pd->pool, desc, desc->txd.phys); pdc_enable_irq(chan, 0); } @@ -880,7 +880,7 @@ static int pch_dma_probe(struct pci_dev *pdev, goto err_iounmap; } - pd->pool = pci_pool_create("pch_dma_desc_pool", pdev, + pd->pool = dma_pool_create("pch_dma_desc_pool", &pdev->dev, sizeof(struct pch_dma_desc), 4, 0); if (!pd->pool) { dev_err(&pdev->dev, "Failed to alloc DMA descriptors\n"); @@ -931,7 +931,7 @@ static int pch_dma_probe(struct pci_dev *pdev, return 0; err_free_pool: - pci_pool_destroy(pd->pool); + dma_pool_destroy(pd->pool); err_free_irq: free_irq(pdev->irq, pd); err_iounmap: @@ -963,7 +963,7 @@ static void pch_dma_remove(struct pci_dev *pdev) tasklet_kill(&pd_chan->tasklet); } - pci_pool_destroy(pd->pool); + dma_pool_destroy(pd->pool); pci_iounmap(pdev, pd->membase); pci_release_regions(pdev); pci_disable_device(pdev); -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 04/15] net: e100: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Acked-by: Peter Senna Tschudin Acked-by: Jeff Kirsher Tested-by: Peter Senna Tschudin --- drivers/net/ethernet/intel/e100.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c index 2b7323d..d1002c2 100644 --- a/drivers/net/ethernet/intel/e100.c +++ b/drivers/net/ethernet/intel/e100.c @@ -607,7 +607,7 @@ struct nic { struct mem *mem; dma_addr_t dma_addr; - struct pci_pool *cbs_pool; + struct dma_pool *cbs_pool; dma_addr_t cbs_dma_addr; u8 adaptive_ifs; u8 tx_threshold; @@ -1892,7 +1892,7 @@ static void e100_clean_cbs(struct nic *nic) nic->cb_to_clean = nic->cb_to_clean->next; nic->cbs_avail++; } - pci_pool_free(nic->cbs_pool, nic->cbs, nic->cbs_dma_addr); + dma_pool_free(nic->cbs_pool, nic->cbs, nic->cbs_dma_addr); nic->cbs = NULL; nic->cbs_avail = 0; } @@ -1910,7 +1910,7 @@ static int e100_alloc_cbs(struct nic *nic) nic->cb_to_use = nic->cb_to_send = nic->cb_to_clean = NULL; nic->cbs_avail = 0; - nic->cbs = pci_pool_alloc(nic->cbs_pool, GFP_KERNEL, + nic->cbs = dma_pool_alloc(nic->cbs_pool, GFP_KERNEL, &nic->cbs_dma_addr); if (!nic->cbs) return -ENOMEM; @@ -2958,8 +2958,8 @@ static int e100_probe(struct pci_dev *pdev, const struct pci_device_id *ent) netif_err(nic, probe, nic->netdev, "Cannot register net device, aborting\n"); goto err_out_free; } - nic->cbs_pool = pci_pool_create(netdev->name, - nic->pdev, + nic->cbs_pool = dma_pool_create(netdev->name, + &nic->pdev->dev, nic->params.cbs.max * sizeof(struct cb), sizeof(u32), 0); @@ -2999,7 +2999,7 @@ static void e100_remove(struct pci_dev *pdev) unregister_netdev(netdev); e100_free(nic); pci_iounmap(pdev, nic->csr); - pci_pool_destroy(nic->cbs_pool); + dma_pool_destroy(nic->cbs_pool); free_netdev(netdev); pci_release_regions(pdev); pci_disable_device(pdev); -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 05/15] mlx4: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Acked-by: Peter Senna Tschudin Tested-by: Peter Senna Tschudin --- drivers/net/ethernet/mellanox/mlx4/cmd.c | 10 +- drivers/net/ethernet/mellanox/mlx4/mlx4.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c index e8c1051..fb69604 100644 --- a/drivers/net/ethernet/mellanox/mlx4/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c @@ -2516,8 +2516,8 @@ int mlx4_cmd_init(struct mlx4_dev *dev) } if (!priv->cmd.pool) { - priv->cmd.pool = pci_pool_create("mlx4_cmd", -dev->persist->pdev, + priv->cmd.pool = dma_pool_create("mlx4_cmd", +&dev->persist->pdev->dev, MLX4_MAILBOX_SIZE, MLX4_MAILBOX_SIZE, 0); if (!priv->cmd.pool) @@ -2588,7 +2588,7 @@ void mlx4_cmd_cleanup(struct mlx4_dev *dev, int cleanup_mask) struct mlx4_priv *priv = mlx4_priv(dev); if (priv->cmd.pool && (cleanup_mask & MLX4_CMD_CLEANUP_POOL)) { - pci_pool_destroy(priv->cmd.pool); + dma_pool_destroy(priv->cmd.pool); priv->cmd.pool = NULL; } @@ -2680,7 +2680,7 @@ struct mlx4_cmd_mailbox *mlx4_alloc_cmd_mailbox(struct mlx4_dev *dev) if (!mailbox) return ERR_PTR(-ENOMEM); - mailbox->buf = pci_pool_zalloc(mlx4_priv(dev)->cmd.pool, GFP_KERNEL, + mailbox->buf = dma_pool_zalloc(mlx4_priv(dev)->cmd.pool, GFP_KERNEL, &mailbox->dma); if (!mailbox->buf) { kfree(mailbox); @@ -2697,7 +2697,7 @@ void mlx4_free_cmd_mailbox(struct mlx4_dev *dev, if (!mailbox) return; - pci_pool_free(mlx4_priv(dev)->cmd.pool, mailbox->buf, mailbox->dma); + dma_pool_free(mlx4_priv(dev)->cmd.pool, mailbox->buf, mailbox->dma); kfree(mailbox); } EXPORT_SYMBOL_GPL(mlx4_free_cmd_mailbox); diff --git a/drivers/net/ethernet/mellanox/mlx4/mlx4.h b/drivers/net/ethernet/mellanox/mlx4/mlx4.h index b4f1bc5..69c8764 100644 --- a/drivers/net/ethernet/mellanox/mlx4/mlx4.h +++ b/drivers/net/ethernet/mellanox/mlx4/mlx4.h @@ -628,7 +628,7 @@ struct mlx4_mgm { }; struct mlx4_cmd { - struct pci_pool*pool; + struct dma_pool*pool; void __iomem *hcr; struct mutexslave_cmd_mutex; struct semaphorepoll_sem; -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 06/15] mlx5: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Reviewed-by: Peter Senna Tschudin --- drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 11 ++- include/linux/mlx5/driver.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c index caa837e..6eef344 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c @@ -1061,7 +1061,7 @@ static struct mlx5_cmd_mailbox *alloc_cmd_box(struct mlx5_core_dev *dev, if (!mailbox) return ERR_PTR(-ENOMEM); - mailbox->buf = pci_pool_zalloc(dev->cmd.pool, flags, + mailbox->buf = dma_pool_zalloc(dev->cmd.pool, flags, &mailbox->dma); if (!mailbox->buf) { mlx5_core_dbg(dev, "failed allocation\n"); @@ -1076,7 +1076,7 @@ static struct mlx5_cmd_mailbox *alloc_cmd_box(struct mlx5_core_dev *dev, static void free_cmd_box(struct mlx5_core_dev *dev, struct mlx5_cmd_mailbox *mailbox) { - pci_pool_free(dev->cmd.pool, mailbox->buf, mailbox->dma); + dma_pool_free(dev->cmd.pool, mailbox->buf, mailbox->dma); kfree(mailbox); } @@ -1696,7 +1696,8 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) return -EINVAL; } - cmd->pool = pci_pool_create("mlx5_cmd", dev->pdev, size, align, 0); + cmd->pool = dma_pool_create("mlx5_cmd", &dev->pdev->dev, size, align, + 0); if (!cmd->pool) return -ENOMEM; @@ -1786,7 +1787,7 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) free_cmd_page(dev, cmd); err_free_pool: - pci_pool_destroy(cmd->pool); + dma_pool_destroy(cmd->pool); return err; } @@ -1800,6 +1801,6 @@ void mlx5_cmd_cleanup(struct mlx5_core_dev *dev) destroy_workqueue(cmd->wq); destroy_msg_cache(dev); free_cmd_page(dev, cmd); - pci_pool_destroy(cmd->pool); + dma_pool_destroy(cmd->pool); } EXPORT_SYMBOL(mlx5_cmd_cleanup); diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 48d8b66..0e33e65 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -284,7 +284,7 @@ struct mlx5_cmd { struct semaphore pages_sem; int mode; struct mlx5_cmd_work_ent *ent_arr[MLX5_MAX_COMMANDS]; - struct pci_pool *pool; + struct dma_pool *pool; struct mlx5_cmd_debug dbg; struct cmd_msg_cache cache[MLX5_NUM_COMMAND_CACHES]; int checksum_disabled; -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 03/15] IB/mthca: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Acked-by: Peter Senna Tschudin Tested-by: Peter Senna Tschudin --- drivers/infiniband/hw/mthca/mthca_av.c | 10 +- drivers/infiniband/hw/mthca/mthca_cmd.c | 8 drivers/infiniband/hw/mthca/mthca_dev.h | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/infiniband/hw/mthca/mthca_av.c b/drivers/infiniband/hw/mthca/mthca_av.c index c9f0f36..9d041b6 100644 --- a/drivers/infiniband/hw/mthca/mthca_av.c +++ b/drivers/infiniband/hw/mthca/mthca_av.c @@ -186,7 +186,7 @@ int mthca_create_ah(struct mthca_dev *dev, on_hca_fail: if (ah->type == MTHCA_AH_PCI_POOL) { - ah->av = pci_pool_zalloc(dev->av_table.pool, + ah->av = dma_pool_zalloc(dev->av_table.pool, GFP_ATOMIC, &ah->avdma); if (!ah->av) return -ENOMEM; @@ -245,7 +245,7 @@ int mthca_destroy_ah(struct mthca_dev *dev, struct mthca_ah *ah) break; case MTHCA_AH_PCI_POOL: - pci_pool_free(dev->av_table.pool, ah->av, ah->avdma); + dma_pool_free(dev->av_table.pool, ah->av, ah->avdma); break; case MTHCA_AH_KMALLOC: @@ -333,7 +333,7 @@ int mthca_init_av_table(struct mthca_dev *dev) if (err) return err; - dev->av_table.pool = pci_pool_create("mthca_av", dev->pdev, + dev->av_table.pool = dma_pool_create("mthca_av", &dev->pdev->dev, MTHCA_AV_SIZE, MTHCA_AV_SIZE, 0); if (!dev->av_table.pool) @@ -353,7 +353,7 @@ int mthca_init_av_table(struct mthca_dev *dev) return 0; out_free_pool: - pci_pool_destroy(dev->av_table.pool); + dma_pool_destroy(dev->av_table.pool); out_free_alloc: mthca_alloc_cleanup(&dev->av_table.alloc); @@ -367,6 +367,6 @@ void mthca_cleanup_av_table(struct mthca_dev *dev) if (dev->av_table.av_map) iounmap(dev->av_table.av_map); - pci_pool_destroy(dev->av_table.pool); + dma_pool_destroy(dev->av_table.pool); mthca_alloc_cleanup(&dev->av_table.alloc); } diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c index c7f49bb..7f219c8 100644 --- a/drivers/infiniband/hw/mthca/mthca_cmd.c +++ b/drivers/infiniband/hw/mthca/mthca_cmd.c @@ -530,7 +530,7 @@ int mthca_cmd_init(struct mthca_dev *dev) return -ENOMEM; } - dev->cmd.pool = pci_pool_create("mthca_cmd", dev->pdev, + dev->cmd.pool = dma_pool_create("mthca_cmd", &dev->pdev->dev, MTHCA_MAILBOX_SIZE, MTHCA_MAILBOX_SIZE, 0); if (!dev->cmd.pool) { @@ -543,7 +543,7 @@ int mthca_cmd_init(struct mthca_dev *dev) void mthca_cmd_cleanup(struct mthca_dev *dev) { - pci_pool_destroy(dev->cmd.pool); + dma_pool_destroy(dev->cmd.pool); iounmap(dev->hcr); if (dev->cmd.flags & MTHCA_CMD_POST_DOORBELLS) iounmap(dev->cmd.dbell_map); @@ -613,7 +613,7 @@ struct mthca_mailbox *mthca_alloc_mailbox(struct mthca_dev *dev, if (!mailbox) return ERR_PTR(-ENOMEM); - mailbox->buf = pci_pool_alloc(dev->cmd.pool, gfp_mask, &mailbox->dma); + mailbox->buf = dma_pool_alloc(dev->cmd.pool, gfp_mask, &mailbox->dma); if (!mailbox->buf) { kfree(mailbox); return ERR_PTR(-ENOMEM); @@ -627,7 +627,7 @@ void mthca_free_mailbox(struct mthca_dev *dev, struct mthca_mailbox *mailbox) if (!mailbox) return; - pci_pool_free(dev->cmd.pool, mailbox->buf, mailbox->dma); + dma_pool_free(dev->cmd.pool, mailbox->buf, mailbox->dma); kfree(mailbox); } diff --git a/drivers/infiniband/hw/mthca/mthca_dev.h b/drivers/infiniband/hw/mthca/mthca_dev.h index 4393a02..8c3f6ed 100644 --- a/drivers/infiniband/hw/mthca/mthca_dev.h +++ b/drivers/infiniband/hw/mthca/mthca_dev.h @@ -118,7 +118,7 @@ enum { }; struct mthca_cmd { - struct pci_pool *pool; + struct dma_pool *pool; struct mutex hcr_mutex; struct semaphore poll_sem; struct semaphore event_sem; @@ -263,7 +263,7 @@ struct mthca_qp_table { }; struct mthca_av_table { - struct pci_pool *pool; + struct dma_pool *pool; intnum_ddr_avs; u64ddr_av_base; void __iomem *av_map; -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 00/15] Replace PCI pool by DMA pool API
The current PCI pool API are simple macro functions direct expanded to the appropriate dma pool functions. The prototypes are almost the same and semantically, they are very similar. I propose to use the DMA pool API directly and get rid of the old API. This set of patches, replaces the old API by the dma pool API and remove the defines. Changes in v6: - Fixed an issue reported by kbuild test robot about changes in DAC960 - Removed patches 15/19,16/19,17/19,18/19. They have been merged by Greg - Added Acked-by Tags Changes in v5: - Re-worded the cover letter (remove sentence about checkpatch.pl) - Rebased series onto next-20170308 - Fix typos in commit message - Added Acked-by Tags Changes in v4: - Rebased series onto next-20170301 - Removed patch 20/20: checks done by checkpath.pl, no longer required. Thanks to Peter and Joe for their feedbacks. - Added Reviewed-by tags Changes in v3: - Rebased series onto next-20170224 - Fix checkpath.pl reports for patch 11/20 and patch 12/20 - Remove prefix RFC Changes in v2: - Introduced patch 18/20 - Fixed cosmetic changes: spaces before brace, live over 80 characters - Removed some of the check for NULL pointers before calling dma_pool_destroy - Improved the regexp in checkpatch for pci_pool, thanks to Joe Perches - Added Tested-by and Acked-by tags Romain Perier (15): block: DAC960: Replace PCI pool old API dmaengine: pch_dma: Replace PCI pool old API IB/mthca: Replace PCI pool old API net: e100: Replace PCI pool old API mlx4: Replace PCI pool old API mlx5: Replace PCI pool old API wireless: ipw2200: Replace PCI pool old API scsi: be2iscsi: Replace PCI pool old API scsi: csiostor: Replace PCI pool old API scsi: lpfc: Replace PCI pool old API scsi: megaraid: Replace PCI pool old API scsi: mpt3sas: Replace PCI pool old API scsi: mvsas: Replace PCI pool old API scsi: pmcraid: Replace PCI pool old API PCI: Remove PCI pool macro functions drivers/block/DAC960.c| 38 + drivers/block/DAC960.h| 4 +- drivers/dma/pch_dma.c | 12 +-- drivers/infiniband/hw/mthca/mthca_av.c| 10 +-- drivers/infiniband/hw/mthca/mthca_cmd.c | 8 +- drivers/infiniband/hw/mthca/mthca_dev.h | 4 +- drivers/net/ethernet/intel/e100.c | 12 +-- drivers/net/ethernet/mellanox/mlx4/cmd.c | 10 +-- drivers/net/ethernet/mellanox/mlx4/mlx4.h | 2 +- drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 11 +-- drivers/net/wireless/intel/ipw2x00/ipw2200.c | 13 ++-- drivers/scsi/be2iscsi/be_iscsi.c | 6 +- drivers/scsi/be2iscsi/be_main.c | 6 +- drivers/scsi/be2iscsi/be_main.h | 2 +- drivers/scsi/csiostor/csio_hw.h | 2 +- drivers/scsi/csiostor/csio_init.c | 11 +-- drivers/scsi/csiostor/csio_scsi.c | 6 +- drivers/scsi/lpfc/lpfc.h | 14 ++-- drivers/scsi/lpfc/lpfc_init.c | 16 ++-- drivers/scsi/lpfc/lpfc_mem.c | 106 +- drivers/scsi/lpfc/lpfc_nvme.c | 6 +- drivers/scsi/lpfc/lpfc_nvmet.c| 4 +- drivers/scsi/lpfc/lpfc_scsi.c | 12 +-- drivers/scsi/megaraid/megaraid_mbox.c | 33 drivers/scsi/megaraid/megaraid_mm.c | 32 drivers/scsi/megaraid/megaraid_sas_base.c | 29 +++ drivers/scsi/megaraid/megaraid_sas_fusion.c | 66 drivers/scsi/mpt3sas/mpt3sas_base.c | 73 +- drivers/scsi/mvsas/mv_init.c | 6 +- drivers/scsi/mvsas/mv_sas.c | 6 +- drivers/scsi/pmcraid.c| 10 +-- drivers/scsi/pmcraid.h| 2 +- include/linux/mlx5/driver.h | 2 +- include/linux/pci.h | 9 --- 34 files changed, 280 insertions(+), 303 deletions(-) -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 14/15] scsi: pmcraid: Replace PCI pool old API
The PCI pool API is deprecated. This commit replaces the PCI pool old API by the appropriate function with the DMA pool API. Signed-off-by: Romain Perier Acked-by: Peter Senna Tschudin Tested-by: Peter Senna Tschudin --- drivers/scsi/pmcraid.c | 10 +- drivers/scsi/pmcraid.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c index 49e70a3..0f893c4 100644 --- a/drivers/scsi/pmcraid.c +++ b/drivers/scsi/pmcraid.c @@ -4699,13 +4699,13 @@ pmcraid_release_control_blocks( return; for (i = 0; i < max_index; i++) { - pci_pool_free(pinstance->control_pool, + dma_pool_free(pinstance->control_pool, pinstance->cmd_list[i]->ioa_cb, pinstance->cmd_list[i]->ioa_cb_bus_addr); pinstance->cmd_list[i]->ioa_cb = NULL; pinstance->cmd_list[i]->ioa_cb_bus_addr = 0; } - pci_pool_destroy(pinstance->control_pool); + dma_pool_destroy(pinstance->control_pool); pinstance->control_pool = NULL; } @@ -4762,8 +4762,8 @@ static int pmcraid_allocate_control_blocks(struct pmcraid_instance *pinstance) pinstance->host->unique_id); pinstance->control_pool = - pci_pool_create(pinstance->ctl_pool_name, - pinstance->pdev, + dma_pool_create(pinstance->ctl_pool_name, + &pinstance->pdev->dev, sizeof(struct pmcraid_control_block), PMCRAID_IOARCB_ALIGNMENT, 0); @@ -4772,7 +4772,7 @@ static int pmcraid_allocate_control_blocks(struct pmcraid_instance *pinstance) for (i = 0; i < PMCRAID_MAX_CMD; i++) { pinstance->cmd_list[i]->ioa_cb = - pci_pool_alloc( + dma_pool_alloc( pinstance->control_pool, GFP_KERNEL, &(pinstance->cmd_list[i]->ioa_cb_bus_addr)); diff --git a/drivers/scsi/pmcraid.h b/drivers/scsi/pmcraid.h index 568b18a..acf5a7b 100644 --- a/drivers/scsi/pmcraid.h +++ b/drivers/scsi/pmcraid.h @@ -755,7 +755,7 @@ struct pmcraid_instance { /* structures related to command blocks */ struct kmem_cache *cmd_cachep; /* cache for cmd blocks */ - struct pci_pool *control_pool; /* pool for control blocks */ + struct dma_pool *control_pool; /* pool for control blocks */ char cmd_pool_name[64]; /* name of cmd cache */ char ctl_pool_name[64]; /* name of control cache */ -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 15/15] PCI: Remove PCI pool macro functions
Now that all the drivers use dma pool API, we can remove the macro functions for PCI pool. Signed-off-by: Romain Perier Reviewed-by: Peter Senna Tschudin --- include/linux/pci.h | 9 - 1 file changed, 9 deletions(-) diff --git a/include/linux/pci.h b/include/linux/pci.h index eb3da1a..04a0703 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1281,15 +1281,6 @@ int pci_set_vga_state(struct pci_dev *pdev, bool decode, #include #include -#definepci_pool dma_pool -#define pci_pool_create(name, pdev, size, align, allocation) \ - dma_pool_create(name, &pdev->dev, size, align, allocation) -#definepci_pool_destroy(pool) dma_pool_destroy(pool) -#definepci_pool_alloc(pool, flags, handle) dma_pool_alloc(pool, flags, handle) -#definepci_pool_zalloc(pool, flags, handle) \ - dma_pool_zalloc(pool, flags, handle) -#definepci_pool_free(pool, vaddr, addr) dma_pool_free(pool, vaddr, addr) - struct msix_entry { u32 vector; /* kernel uses to write allocated vector */ u16 entry; /* driver uses to specify entry, OS writes */ -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH RFC 3/7] net: lan78xx: update for phy_(read|write)_mmd_indirect() removal
On Sun, Mar 19, 2017 at 11:00:29AM +, Russell King wrote: > lan78xx appears to use phylib in a rather weird way, accessing the PHY > partly through phylib, and partly by makign direct accesses to it, Hi Russell s/makign/making Andrew -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Dell Inspiron 5558/0VNM2T hangs at resume from suspend when USB 3 is enabled
On Fri, Mar 17, 2017 at 5:18 PM, Diego Viola wrote: > On Fri, Mar 17, 2017 at 1:57 PM, Diego Viola wrote: >> On Fri, Mar 17, 2017 at 1:24 PM, Alan Stern >> wrote: >>> On Fri, 17 Mar 2017, Diego Viola wrote: >>> Hi, Here's the log to the netconsole dmesg capture, I've used xhci_hcd.dyndbg no_console_suspend=1 as the kernel parameters. I did the usual suspend/resume cycle with i3lock, it hung after the third attempt when trying to resume from suspend. https://bugzilla.kernel.org/attachment.cgi?id=255309 >>> >>> I'm not an expert on xHCI. This should be CC'ed to the xhci-hcd >>> maintainer. >>> >>> Alan Stern >>> Please let me know if I should provide something else. Thanks, Diego >>> >> >> I've forwarded my email to Mathias Nyman. >> >> Diego > > Still a problem with 4.11.0-rc2-ARCH+ > > commit d528ae0d3dfedea553812c957a6ed1e87feeed8a I have had a conversation with oiaohm over IRC about this, some interesting things he had said about this issue: 2017-03-18 18:08:02 oiaohm That driver that was going dead because because it was physical port less was usb stack. So maybe it that bit of hardware still doing stupid. 2017-03-18 18:21:44 oiaohm I guess this current log of yours is with the realtek memstick black listed. 2017-03-18 18:21:55 oiaohm because it does not exist. 2017-03-18 18:22:09 oiaohm physically. 2017-03-18 18:23:04 oiaohm Maybe. If the hardware is not inited the usb stack might not try to suspend it. 2017-03-18 18:26:30 oiaohm No matter how you look at it the thing is broken hardware. I don't know if that realtek is USB 3.0 2017-03-18 18:27:02 oiaohm Or it sitting on a USB 3.0 hub inside the machine. 2017-03-18 18:27:39 oiaohm You cannot expect a driver to work when the hardware is portless. 2017-03-18 18:27:51 oiaohm and it should have a port. 2017-03-18 18:27:52 oiaohm either. 2017-03-18 18:29:03 oiaohm rtsx_usb_ms this is a memstick driver there should be memstick port on you system or a header for a memstick port both mean the pull down and pull up circiuts are present so the hardware cannot function right. 2017-03-18 18:29:38 oiaohm You gone over the machine and there is no memstick port exposed being a laptop the odds of internal header is basically never happens. 2017-03-18 18:30:27 oiaohm so it broken hardware. 2017-03-18 18:31:18 oiaohm the correct answer with broken hardware is don't init the part blacklist the driver. 2017-03-18 18:40:36 oiaohm You can think of it this way the hardware gets lost because it cannot tell if something is connected so is sending messages and waiting for responses that will never come. But when hardware is there due to different speeds of cards it has no clear clue what the time frame is. 2017-03-18 18:41:27 oiaohm So the hardware being lost and kinda jammed is purely to be excepted if it does not have all it required circuits to function. 2017-03-18 18:48:42 oiaohm You have the realtek controller for a memstick port and it cannot tell if the proper hardware is present or not that is what is triggering the driver to load. 2017-03-18 18:49:18 oiaohm There is a difference when you have the USB 3.0 controller active. 2017-03-18 18:49:49 oiaohm You will see a lot of windows users noting they need to disable the USB 3.0 controller to hibernate. 2017-03-18 18:50:19 oiaohm In usb 2.0 the operating system polls the USB ports and does a lot of the messaging. In USB 3.0 controller it does that polling. 2017-03-18 18:50:40 oiaohm USB 3.0 controllers normally presume all the hardware that is inited is functional. 2017-03-18 18:51:07 oiaohm Linux kernel doing USB 2.0 polling itself presumes the hardware could be busted. 2017-03-18 18:56:37 oiaohm USB 3.0 controller is interpret driven to the OS so it does a lot of heavy lifting of USB by itself. USB 2.0 and before controllers are like win modems basically brainless and depending on the OS todo everything thing. 2017-03-18 18:58:27 oiaohm So usb 2.0 controller not showing the issue and the usb 3.0 showing the issue is kind of expected. If you did not init the hardware and usb 3.0 controller still showed a issue then there would be a problem. 2017-03-18 19:02:59 oiaohm dviola I guess the only thing you were missing is that the USB 3.0 controller had proper controller so can think for itself and USB 2.0 and before is like a brainless winmoden so the OS can work around a few USB hardware issues in USB 2.0 controller mode. 2017-03-18 19:09:58 oiaohm do remember the difference between usb 2.0 and usb 3.0 at times you have no choice but to force back to usb 2.0 2017-03-18 19:10:12 oiaohm With broken bits of hardware. 2017-03-18 22:30:38 oiaohm I think everyone is being confused by a basic hardware construciton cost cutting move. 2017-03-18 22:31:18 oiaohm Now maybe they will be able
Re: [PATCH RFC 0/7] phylib MMD accessor cleanups
Le 03/19/17 à 03:59, Russell King - ARM Linux a écrit : > Hi, > > This series cleans up the phylib MMD accessors. We have two accessors > at present, phy_(read|write)_mmd() and phy_(read|write)_mmd_indirect() > > The _indirect methods access the MMD registers via a clause 22 phy, > whereas the non-_indirect methods acess via clause 45 accesses. > > Current PHY-independent parts of phylib (such as EEE) access the MMD > registers via the _indirect methods, which is no good if you have a > clause 45 PHY that doesn't respond to clause 22 accesses. > > In order to make these features available, we need to rework these > accessors such that they can access the MMD registers using a method > dependent on the clause that the PHY conforms with. > > This series of patches does exactly that - we merge the functionality > of the indirect accesses into the clause 45 accessors, and use these > exclusively to access MMD registers. Internally, the new clause > independent MMD accessors indirect via the PHY drivers read_mmd/write_mmd > methods if present, otherwise fall back to using clause 45 accesses if > the PHY is a clause 45 phy, or clause 22 indirect accesses if the PHY > is clause 22. LGTM: Reviewed-by: Florian Fainelli > > Note: confusingly, phy_read_mmd_indirect() vs phy_read_mmd() switches > the order of prtad and devad, which means that converting between the > two is not a simple matter of just replacing the function name. Same > applies for the write methods. > > drivers/net/phy/Makefile | 2 +- > drivers/net/phy/bcm-phy-lib.c | 12 ++--- > drivers/net/phy/dp83867.c | 25 +- > drivers/net/phy/intel-xway.c | 26 +- > drivers/net/phy/micrel.c | 13 +++-- > drivers/net/phy/microchip.c | 5 +- > drivers/net/phy/phy-core.c| 101 ++ > drivers/net/phy/phy.c | 110 > -- > drivers/net/phy/phy_device.c | 4 +- > drivers/net/usb/lan78xx.c | 10 ++-- > include/linux/phy.h | 80 +- > 11 files changed, 178 insertions(+), 210 deletions(-) > -- Florian -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] usb: gadget: dummy_hcd: Fix wrong port status macros in dummy_hub_control()
This fixes the commit: 1cd8fd2887e162ad3d06715 (usb: gadget: dummy_hcd: add SuperSpeed support). Signed-off-by: Yuyang Du --- drivers/usb/gadget/udc/dummy_hcd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c index 8cabc59..56d4e95 100644 --- a/drivers/usb/gadget/udc/dummy_hcd.c +++ b/drivers/usb/gadget/udc/dummy_hcd.c @@ -2063,12 +2063,11 @@ static int dummy_hub_control( break; case USB_PORT_FEAT_POWER: if (hcd->speed == HCD_USB3) { - if (dum_hcd->port_status & USB_PORT_STAT_POWER) + if (dum_hcd->port_status & USB_SS_PORT_STAT_POWER) dev_dbg(dummy_dev(dum_hcd), "power-off\n"); } else - if (dum_hcd->port_status & - USB_SS_PORT_STAT_POWER) + if (dum_hcd->port_status & USB_PORT_STAT_POWER) dev_dbg(dummy_dev(dum_hcd), "power-off\n"); /* FALLS THROUGH */ -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
usb: gadget: configfs: uvc and mass storage on single udc?
Hello experts, I'm trying to implement two functions on single udc configuration i.e uvc device class and mass storage. individually it is working fine but coming to multi role it is failing. kernel 4.4: mount -t debugfs debugfs /mnt/ echo "device" > /mnt/488d.usb/mode modprobe -v configfs modprobe -v libcomposite sleep 2 cd /sys/kernel/config/usb_gadget mkdir g1 cd g1 echo "0x1d6b" > idVendor echo "0x0104" > idProduct mkdir strings/0x409 echo "0123456789" > strings/0x409/serialnumber echo "TI Inc." > strings/0x409/manufacturer echo "MS+UVC gadget" > strings/0x409/product modprobe -v usb_f_mass_storage mkdir functions/mass_storage.ms0 # create backing store(s): in this example 2 LUN's 16MB each dd bs=1M count=16 if=/dev/zero of=/tmp/lun0.img # 16MB chmod 777 /tmp/lun0.img modprobe -v usb_f_uvc mkdir functions/uvc.usb0 mkdir configs/c.1 mkdir configs/c.1/strings/0x409 echo "mass-storage + uvc" > configs/c.1/strings/0x409/configuration echo 120 > configs/c.1/MaxPower mkdir functions/uvc.usb0/control/header/h cd functions/uvc.usb0/control/ ln -s header/h class/fs ln -s header/h class/ss cd ../../../ mkdir -p functions/uvc.usb0/streaming/uncompressed/u/360p cat < functions/uvc.usb0/streaming/uncompressed/u/360p/dwFrameInterval 66 100 500 EOF mkdir functions/uvc.usb0/streaming/header/h cd functions/uvc.usb0/streaming/header/h ln -s ../../uncompressed/u cd ../../class/fs ln -s ../../header/h cd ../../class/hs ln -s ../../header/h cd ../../../control cd ../../../ echo /tmp/lun0.img > functions/mass_storage.ms0/lun.0/file echo 1 > functions/mass_storage.ms0/lun.0/removable ln -s functions/mass_storage.ms0 configs/c.1/ ln -s functions/uvc.usb0 configs/c.1/ echo "488d.usb" > UDC = dmesg: = insmod /lib/modules/4.4.23/kernel/fs/configfs/configfs.ko insmod /lib/modules/4.4.23/kernel/drivers/usb/gadget/libcomposite.ko insmod /lib/modules/4.4.23/kernel/drivers/usb/gadget/function/usb_f_mass_storage.ko [ 58.376548] Mass Storage Function, version: 2009/09/11 [ 58.381720] LUN: removable file: (no medium) 16+0 records in 16+0 records out insmod /lib/modules/4.4.23/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko insmod /lib/modules/4.4.23/kernel/drivers/usb/gadget/function/usb_f_uvc.ko [ 58.525130] configfs-gadget gadget: uvc_function_bind # modprobe vivid # ./uvc-gadget -u /dev/video0 -v /dev/video1 V4L2 device is vivid on bus platform:vivid-000 V4L2: Getting current format: YUYV 640x360 V4L2: Setting format to: YUYV 640x360 V4L2: Getting current format: YUYV 640x360 v4l2 open succeeded, file descriptor = 3 uvc device is dwc3-gadget on bus gadget uvc open succeeded, file descriptor = 4 V4L2: Buffer 0 mapped at address 0xb6e26000. V4L2: Buffer 1 mapped at address 0xb6db5000. V4L2: 2 buffers allocated. [ 267.245560] configfs-gadget gadget: uvc_function_disable [ 267.492271] configfs-gadget gadget: high-speed config #1: c [ 267.497885] configfs-gadget gadget: uvc_function_set_alt(1, 0) [ 267.503742] configfs-gadget gadget: reset UVC Control [ 267.508822] configfs-gadget gadget: uvc_function_set_alt(2, 0) [ 267.516769] configfs-gadget gadget: uvc_function_set_alt(2, 0) = Host side === [105697.232059] usb 1-3: new high-speed USB device number 91 using ehci-pci [105697.366556] usb 1-3: New USB device found, idVendor=1d6b, idProduct=0104 [105697.366563] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [105697.366567] usb 1-3: Product: MS+UVC gadget [105697.366571] usb 1-3: Manufacturer: TI Inc. [105697.366574] usb 1-3: SerialNumber: 0123456789 [105697.390430] usb-storage 1-3:1.0: USB Mass Storage device detected [105697.390625] scsi11 : usb-storage 1-3:1.0 [105697.391255] uvcvideo: Found UVC 1.00 device MS+UVC gadget (1d6b:0104) [105697.400076] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround. [105697.400573] uvcvideo: Failed to query (129) UVC probe control : -32 (exp. 26). [105697.400582] uvcvideo: Failed to initialize the device (-5). [105698.389100] scsi 11:0:0:0: Direct-Access LinuxFile-Stor Gadget 0404 PQ: 0 ANSI: 2 [105698.389676] sd 11:0:0:0: Attached scsi generic sg2 type 0 [105698.390850] sd 11:0:0:0: [sdb] 32768 512-byte logical blocks: (16.7 MB/16.0 MiB) [105698.391539] sd 11:0:0:0: [sdb] Write Protect is off [105698.391550] sd 11:0:0:0: [sdb] Mode Sense: 0f 00 00 00 [105698.392557] sd 11:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [105698.403242] sdb: unknown partition table [105698.409739] sd 11:0:0:0: [sdb] Attached SCSI removable disk Can anybody tell what i have missed, first is it possible have uvc + ms. regards, Ganesh Biradar -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v6 06/15] mlx5: Replace PCI pool old API
On Sun, Mar 19, 2017 at 06:03:55PM +0100, Romain Perier wrote: > The PCI pool API is deprecated. This commit replaces the PCI pool old > API by the appropriate function with the DMA pool API. > > Signed-off-by: Romain Perier > Reviewed-by: Peter Senna Tschudin > --- > drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 11 ++- > include/linux/mlx5/driver.h | 2 +- > 2 files changed, 7 insertions(+), 6 deletions(-) > Thanks, Acked-by: Leon Romanovsky signature.asc Description: PGP signature
Re: [PATCH v6 05/15] mlx4: Replace PCI pool old API
On Sun, Mar 19, 2017 at 06:03:54PM +0100, Romain Perier wrote: > The PCI pool API is deprecated. This commit replaces the PCI pool old > API by the appropriate function with the DMA pool API. > > Signed-off-by: Romain Perier > Acked-by: Peter Senna Tschudin > Tested-by: Peter Senna Tschudin > --- > drivers/net/ethernet/mellanox/mlx4/cmd.c | 10 +- > drivers/net/ethernet/mellanox/mlx4/mlx4.h | 2 +- > 2 files changed, 6 insertions(+), 6 deletions(-) > Thanks, Reviewed-by: Leon Romanovsky signature.asc Description: PGP signature
Re: [PATCH 01/11] net: usb: usbnet: add new api ethtool_{get|set}_link_ksettings
Am Donnerstag, den 16.03.2017, 23:18 +0100 schrieb Philippe Reynes: > The ethtool api {get|set}_settings is deprecated. > We add the new api {get|set}_link_ksettings to this driver. > > As I don't have the hardware, I'd be very pleased if > someone may test this patch. > > Signed-off-by: Philippe Reynes Acked-by: Oliver Neukum -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 11/11] net: usb: usb: remove old api ethtool_{get|set}_settings
Am Donnerstag, den 16.03.2017, 23:18 +0100 schrieb Philippe Reynes: > The function usbnet_{get|set}_settings is no longer used, > so we remove it. > > Signed-off-by: Philippe Reynes Acked-by: Oliver Neukum -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html