Auto-update from upstream
This commit is contained in:
commit
4eaefb3952
|
@ -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);
|
||||||
|
@ -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 */
|
||||||
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
return err;
|
if (err)
|
||||||
|
return err;
|
||||||
|
return count;
|
||||||
}
|
}
|
||||||
static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind);
|
static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind);
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -765,7 +765,8 @@ snd_pmac_ctrl_intr(int irq, void *devid, struct pt_regs *regs)
|
||||||
*/
|
*/
|
||||||
static void snd_pmac_sound_feature(pmac_t *chip, int enable)
|
static void snd_pmac_sound_feature(pmac_t *chip, int enable)
|
||||||
{
|
{
|
||||||
ppc_md.feature_call(PMAC_FTR_SOUND_CHIP_ENABLE, chip->node, 0, enable);
|
if (ppc_md.feature_call)
|
||||||
|
ppc_md.feature_call(PMAC_FTR_SOUND_CHIP_ENABLE, chip->node, 0, enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue