diff options
| author | 2010-10-13 15:44:24 +0200 | |
|---|---|---|
| committer | 2010-10-13 15:44:24 +0200 | |
| commit | 3d8a1a6a8af910cc2da566080d111e062a124ba6 (patch) | |
| tree | 0c78b30a5c7aa083e215222989f982313c5141c0 /lib | |
| parent | AGP: Warn when GATT memory cannot be set to UC (diff) | |
| parent | x86/amd-iommu: Update copyright headers (diff) | |
Merge branch 'amd-iommu/2.6.37' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu into core/iommu
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/raid6/.gitignore | 4 | ||||
| -rw-r--r-- | lib/scatterlist.c | 14 |
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/raid6/.gitignore b/lib/raid6/.gitignore new file mode 100644 index 000000000000..162becacf97c --- /dev/null +++ b/lib/raid6/.gitignore @@ -0,0 +1,4 @@ +mktables +altivec*.c +int*.c +tables.c diff --git a/lib/scatterlist.c b/lib/scatterlist.c index a5ec42868f99..4ceb05d772ae 100644 --- a/lib/scatterlist.c +++ b/lib/scatterlist.c @@ -248,8 +248,18 @@ int __sg_alloc_table(struct sg_table *table, unsigned int nents, left -= sg_size; sg = alloc_fn(alloc_size, gfp_mask); - if (unlikely(!sg)) - return -ENOMEM; + if (unlikely(!sg)) { + /* + * Adjust entry count to reflect that the last + * entry of the previous table won't be used for + * linkage. Without this, sg_kfree() may get + * confused. + */ + if (prv) + table->nents = ++table->orig_nents; + + return -ENOMEM; + } sg_init_table(sg, alloc_size); table->nents = table->orig_nents += sg_size; |
