Loading arch/ppc64/kernel/iommu.c +4 −3 Original line number Original line Diff line number Diff line Loading @@ -242,7 +242,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl, dma_addr_t dma_next = 0, dma_addr; dma_addr_t dma_next = 0, dma_addr; unsigned long flags; unsigned long flags; struct scatterlist *s, *outs, *segstart; struct scatterlist *s, *outs, *segstart; int outcount; int outcount, incount; unsigned long handle; unsigned long handle; BUG_ON(direction == DMA_NONE); BUG_ON(direction == DMA_NONE); Loading @@ -252,6 +252,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl, outs = s = segstart = &sglist[0]; outs = s = segstart = &sglist[0]; outcount = 1; outcount = 1; incount = nelems; handle = 0; handle = 0; /* Init first segment length for backout at failure */ /* Init first segment length for backout at failure */ Loading Loading @@ -338,10 +339,10 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl, DBG("mapped %d elements:\n", outcount); DBG("mapped %d elements:\n", outcount); /* For the sake of iommu_free_sg, we clear out the length in the /* For the sake of iommu_unmap_sg, we clear out the length in the * next entry of the sglist if we didn't fill the list completely * next entry of the sglist if we didn't fill the list completely */ */ if (outcount < nelems) { if (outcount < incount) { outs++; outs++; outs->dma_address = DMA_ERROR_CODE; outs->dma_address = DMA_ERROR_CODE; outs->dma_length = 0; outs->dma_length = 0; Loading drivers/base/bus.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -180,7 +180,9 @@ static ssize_t driver_bind(struct device_driver *drv, up(&dev->sem); up(&dev->sem); put_device(dev); put_device(dev); } } if (err) return err; return err; return count; } } static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind); static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind); Loading drivers/pnp/card.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -312,6 +312,8 @@ found: if (drv->link.driver.probe) { if (drv->link.driver.probe) { if (drv->link.driver.probe(&dev->dev)) { if (drv->link.driver.probe(&dev->dev)) { dev->dev.driver = NULL; dev->dev.driver = NULL; dev->card_link = NULL; up_write(&dev->dev.bus->subsys.rwsem); return NULL; return NULL; } } } } Loading fs/ntfs/ChangeLog +1 −1 Original line number Original line Diff line number Diff line Loading @@ -175,7 +175,7 @@ ToDo/Notes: the ntfs inode in memory if present. Also, the ntfs inode has its the ntfs inode in memory if present. Also, the ntfs inode has its own locking so it does not matter if the vfs inode is locked. own locking so it does not matter if the vfs inode is locked. - Fix bug in mft record writing where we forgot to set the device in - Fix bug in mft record writing where we forgot to set the device in the buffers when mapping them after the VM had discarded them the buffers when mapping them after the VM had discarded them. Thanks to Martin MOKREJŠ for the bug report. Thanks to Martin MOKREJŠ for the bug report. 2.1.22 - Many bug and race fixes and error handling improvements. 2.1.22 - Many bug and race fixes and error handling improvements. Loading fs/ntfs/aops.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -924,6 +924,7 @@ static int ntfs_write_mst_block(struct page *page, LCN lcn; LCN lcn; unsigned int vcn_ofs; unsigned int vcn_ofs; bh->b_bdev = vol->sb->s_bdev; /* Obtain the vcn and offset of the current block. */ /* Obtain the vcn and offset of the current block. */ vcn = (VCN)block << bh_size_bits; vcn = (VCN)block << bh_size_bits; vcn_ofs = vcn & vol->cluster_size_mask; vcn_ofs = vcn & vol->cluster_size_mask; Loading Loading
arch/ppc64/kernel/iommu.c +4 −3 Original line number Original line Diff line number Diff line Loading @@ -242,7 +242,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl, dma_addr_t dma_next = 0, dma_addr; dma_addr_t dma_next = 0, dma_addr; unsigned long flags; unsigned long flags; struct scatterlist *s, *outs, *segstart; struct scatterlist *s, *outs, *segstart; int outcount; int outcount, incount; unsigned long handle; unsigned long handle; BUG_ON(direction == DMA_NONE); BUG_ON(direction == DMA_NONE); Loading @@ -252,6 +252,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl, outs = s = segstart = &sglist[0]; outs = s = segstart = &sglist[0]; outcount = 1; outcount = 1; incount = nelems; handle = 0; handle = 0; /* Init first segment length for backout at failure */ /* Init first segment length for backout at failure */ Loading Loading @@ -338,10 +339,10 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl, DBG("mapped %d elements:\n", outcount); DBG("mapped %d elements:\n", outcount); /* For the sake of iommu_free_sg, we clear out the length in the /* For the sake of iommu_unmap_sg, we clear out the length in the * next entry of the sglist if we didn't fill the list completely * next entry of the sglist if we didn't fill the list completely */ */ if (outcount < nelems) { if (outcount < incount) { outs++; outs++; outs->dma_address = DMA_ERROR_CODE; outs->dma_address = DMA_ERROR_CODE; outs->dma_length = 0; outs->dma_length = 0; Loading
drivers/base/bus.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -180,7 +180,9 @@ static ssize_t driver_bind(struct device_driver *drv, up(&dev->sem); up(&dev->sem); put_device(dev); put_device(dev); } } if (err) return err; return err; return count; } } static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind); static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind); Loading
drivers/pnp/card.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -312,6 +312,8 @@ found: if (drv->link.driver.probe) { if (drv->link.driver.probe) { if (drv->link.driver.probe(&dev->dev)) { if (drv->link.driver.probe(&dev->dev)) { dev->dev.driver = NULL; dev->dev.driver = NULL; dev->card_link = NULL; up_write(&dev->dev.bus->subsys.rwsem); return NULL; return NULL; } } } } Loading
fs/ntfs/ChangeLog +1 −1 Original line number Original line Diff line number Diff line Loading @@ -175,7 +175,7 @@ ToDo/Notes: the ntfs inode in memory if present. Also, the ntfs inode has its the ntfs inode in memory if present. Also, the ntfs inode has its own locking so it does not matter if the vfs inode is locked. own locking so it does not matter if the vfs inode is locked. - Fix bug in mft record writing where we forgot to set the device in - Fix bug in mft record writing where we forgot to set the device in the buffers when mapping them after the VM had discarded them the buffers when mapping them after the VM had discarded them. Thanks to Martin MOKREJŠ for the bug report. Thanks to Martin MOKREJŠ for the bug report. 2.1.22 - Many bug and race fixes and error handling improvements. 2.1.22 - Many bug and race fixes and error handling improvements. Loading
fs/ntfs/aops.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -924,6 +924,7 @@ static int ntfs_write_mst_block(struct page *page, LCN lcn; LCN lcn; unsigned int vcn_ofs; unsigned int vcn_ofs; bh->b_bdev = vol->sb->s_bdev; /* Obtain the vcn and offset of the current block. */ /* Obtain the vcn and offset of the current block. */ vcn = (VCN)block << bh_size_bits; vcn = (VCN)block << bh_size_bits; vcn_ofs = vcn & vol->cluster_size_mask; vcn_ofs = vcn & vol->cluster_size_mask; Loading