diff options
-rw-r--r-- | arch/ppc64/kernel/iommu.c | 7 | ||||
-rw-r--r-- | drivers/base/bus.c | 4 | ||||
-rw-r--r-- | drivers/pnp/card.c | 2 | ||||
-rw-r--r-- | fs/ntfs/ChangeLog | 2 | ||||
-rw-r--r-- | fs/ntfs/aops.c | 1 | ||||
-rw-r--r-- | sound/ppc/pmac.c | 3 |
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 | } |
185 | static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind); | 187 | static 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 | ||
181 | 2.1.22 - Many bug and race fixes and error handling improvements. | 181 | 2.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 | */ |
766 | static void snd_pmac_sound_feature(pmac_t *chip, int enable) | 766 | static 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 | /* |