aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/ppc64/kernel/iommu.c7
-rw-r--r--drivers/base/bus.c4
-rw-r--r--drivers/pnp/card.c2
-rw-r--r--fs/ntfs/ChangeLog2
-rw-r--r--fs/ntfs/aops.c1
-rw-r--r--sound/ppc/pmac.c3
6 files changed, 13 insertions, 6 deletions
diff --git a/arch/ppc64/kernel/iommu.c b/arch/ppc64/kernel/iommu.c
index 8316426ccaf6..845eebd1e28d 100644
--- a/arch/ppc64/kernel/iommu.c
+++ b/arch/ppc64/kernel/iommu.c
@@ -242,7 +242,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
242 dma_addr_t dma_next = 0, dma_addr; 242 dma_addr_t dma_next = 0, dma_addr;
243 unsigned long flags; 243 unsigned long flags;
244 struct scatterlist *s, *outs, *segstart; 244 struct scatterlist *s, *outs, *segstart;
245 int outcount; 245 int outcount, incount;
246 unsigned long handle; 246 unsigned long handle;
247 247
248 BUG_ON(direction == DMA_NONE); 248 BUG_ON(direction == DMA_NONE);
@@ -252,6 +252,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
252 252
253 outs = s = segstart = &sglist[0]; 253 outs = s = segstart = &sglist[0];
254 outcount = 1; 254 outcount = 1;
255 incount = nelems;
255 handle = 0; 256 handle = 0;
256 257
257 /* Init first segment length for backout at failure */ 258 /* Init first segment length for backout at failure */
@@ -338,10 +339,10 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
338 339
339 DBG("mapped %d elements:\n", outcount); 340 DBG("mapped %d elements:\n", outcount);
340 341
341 /* For the sake of iommu_free_sg, we clear out the length in the 342 /* For the sake of iommu_unmap_sg, we clear out the length in the
342 * next entry of the sglist if we didn't fill the list completely 343 * next entry of the sglist if we didn't fill the list completely
343 */ 344 */
344 if (outcount < nelems) { 345 if (outcount < incount) {
345 outs++; 346 outs++;
346 outs->dma_address = DMA_ERROR_CODE; 347 outs->dma_address = DMA_ERROR_CODE;
347 outs->dma_length = 0; 348 outs->dma_length = 0;
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 96fe2f956754..ab53832d57e5 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -180,7 +180,9 @@ static ssize_t driver_bind(struct device_driver *drv,
180 up(&dev->sem); 180 up(&dev->sem);
181 put_device(dev); 181 put_device(dev);
182 } 182 }
183 return err; 183 if (err)
184 return err;
185 return count;
184} 186}
185static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind); 187static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind);
186 188
diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c
index add12f7c489a..6e5229e92fbc 100644
--- a/drivers/pnp/card.c
+++ b/drivers/pnp/card.c
@@ -312,6 +312,8 @@ found:
312 if (drv->link.driver.probe) { 312 if (drv->link.driver.probe) {
313 if (drv->link.driver.probe(&dev->dev)) { 313 if (drv->link.driver.probe(&dev->dev)) {
314 dev->dev.driver = NULL; 314 dev->dev.driver = NULL;
315 dev->card_link = NULL;
316 up_write(&dev->dev.bus->subsys.rwsem);
315 return NULL; 317 return NULL;
316 } 318 }
317 } 319 }
diff --git a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog
index 21e21fe519e2..9eecc9939dfe 100644
--- a/fs/ntfs/ChangeLog
+++ b/fs/ntfs/ChangeLog
@@ -175,7 +175,7 @@ ToDo/Notes:
175 the ntfs inode in memory if present. Also, the ntfs inode has its 175 the ntfs inode in memory if present. Also, the ntfs inode has its
176 own locking so it does not matter if the vfs inode is locked. 176 own locking so it does not matter if the vfs inode is locked.
177 - Fix bug in mft record writing where we forgot to set the device in 177 - Fix bug in mft record writing where we forgot to set the device in
178 the buffers when mapping them after the VM had discarded them 178 the buffers when mapping them after the VM had discarded them.
179 Thanks to Martin MOKREJŠ for the bug report. 179 Thanks to Martin MOKREJŠ for the bug report.
180 180
1812.1.22 - Many bug and race fixes and error handling improvements. 1812.1.22 - Many bug and race fixes and error handling improvements.
diff --git a/fs/ntfs/aops.c b/fs/ntfs/aops.c
index 3f43bfe6184e..78adad7a988d 100644
--- a/fs/ntfs/aops.c
+++ b/fs/ntfs/aops.c
@@ -924,6 +924,7 @@ static int ntfs_write_mst_block(struct page *page,
924 LCN lcn; 924 LCN lcn;
925 unsigned int vcn_ofs; 925 unsigned int vcn_ofs;
926 926
927 bh->b_bdev = vol->sb->s_bdev;
927 /* Obtain the vcn and offset of the current block. */ 928 /* Obtain the vcn and offset of the current block. */
928 vcn = (VCN)block << bh_size_bits; 929 vcn = (VCN)block << bh_size_bits;
929 vcn_ofs = vcn & vol->cluster_size_mask; 930 vcn_ofs = vcn & vol->cluster_size_mask;
diff --git a/sound/ppc/pmac.c b/sound/ppc/pmac.c
index 844d76152ea2..c89e82eb06a6 100644
--- a/sound/ppc/pmac.c
+++ b/sound/ppc/pmac.c
@@ -765,7 +765,8 @@ snd_pmac_ctrl_intr(int irq, void *devid, struct pt_regs *regs)
765 */ 765 */
766static void snd_pmac_sound_feature(pmac_t *chip, int enable) 766static void snd_pmac_sound_feature(pmac_t *chip, int enable)
767{ 767{
768 ppc_md.feature_call(PMAC_FTR_SOUND_CHIP_ENABLE, chip->node, 0, enable); 768 if (ppc_md.feature_call)
769 ppc_md.feature_call(PMAC_FTR_SOUND_CHIP_ENABLE, chip->node, 0, enable);
769} 770}
770 771
771/* 772/*