+ m68k-get_user-build-fix.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     m68k: get_user() build fix

has been added to the -mm tree.  Its filename is

     m68k-get_user-build-fix.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: m68k: get_user() build fix
From: Andrew Morton <akpm@xxxxxxxx>


include/linux/pagemap.h: In function 'fault_in_pages_readable':
include/linux/pagemap.h:244: error: read-only variable '__gu_val' used as 'asm' output
include/linux/pagemap.h:244: error: read-only variable '__gu_val' used as 'asm' output
include/linux/pagemap.h:244: error: read-only variable '__gu_val' used as 'asm' output
include/linux/pagemap.h:244: warning: passing argument 1 of '__constant_copy_from_user' discards qualifiers from pointer target type

The problem is the typeof().  It maintains the constness, so we end up using a
const cariable as an asm output and gcc-4.1.0 barfs.

Fix that up by creating separate temporaries.  Might cause an increase in
stack usage, depending upon how dumb the compiler is being.



(gcc-4.1.0 fails later:

{standard input}:804: Error: operands mismatch -- statement `bfset -(%a0){%d0,#1}' ignored
distcc[13414] ERROR: compile kernel/signal.c on g5/128 failed
)

Cc: Roman Zippel <zippel@xxxxxxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 include/asm-m68k/uaccess.h |   59 ++++++++++++++++++++---------------
 1 file changed, 34 insertions(+), 25 deletions(-)

diff -puN include/asm-m68k/uaccess.h~m68k-get_user-build-fix include/asm-m68k/uaccess.h
--- devel/include/asm-m68k/uaccess.h~m68k-get_user-build-fix	2006-06-03 12:28:20.000000000 -0700
+++ devel-akpm/include/asm-m68k/uaccess.h	2006-06-03 12:33:40.000000000 -0700
@@ -88,31 +88,40 @@ __asm__ __volatile__					\
      : "=d"(err)					\
      : "m"(*(ptr)), "r"(x), "i"(-EFAULT), "0"(0))
 
-#define get_user(x, ptr)					\
-({								\
-    int __gu_err;						\
-    typeof(*(ptr)) __gu_val;					\
-    __chk_user_ptr(ptr);					\
-    switch (sizeof(*(ptr))) {					\
-    case 1:							\
-	__get_user_asm(__gu_err, __gu_val, ptr, b, "=d");	\
-	break;							\
-    case 2:							\
-	__get_user_asm(__gu_err, __gu_val, ptr, w, "=r");	\
-	break;							\
-    case 4:							\
-	__get_user_asm(__gu_err, __gu_val, ptr, l, "=r");	\
-	break;							\
-    case 8:                                                     \
-        __gu_err = __constant_copy_from_user(&__gu_val, ptr, 8);  \
-        break;                                                  \
-    default:							\
-	__gu_val = (typeof(*(ptr)))0;				\
-	__gu_err = __get_user_bad();				\
-	break;							\
-    }								\
-    (x) = __gu_val;						\
-    __gu_err;							\
+#define get_user(x, ptr)						\
+({									\
+    int __gu_err;							\
+    __chk_user_ptr(ptr);						\
+    switch (sizeof(*(ptr))) {						\
+    case 1: {								\
+		u8 v;							\
+		__get_user_asm(__gu_err, v, ptr, b, "=d");		\
+		(x) = v;						\
+	}								\
+	break;								\
+    case 2: {								\
+		u16 v;							\
+		__get_user_asm(__gu_err, v, ptr, w, "=r");		\
+		(x) = v;						\
+	}								\
+	break;								\
+    case 4: {								\
+		u32 v;							\
+		__get_user_asm(__gu_err, v, ptr, l, "=r");		\
+		(x) = v;						\
+	}								\
+	break;								\
+    case 8: {                                                    	\
+		u64 v;							\
+	        __gu_err = __constant_copy_from_user(&v, ptr, 8);	\
+		(x) = v;						\
+	}								\
+        break;                                                  	\
+    default:								\
+	__gu_err = __get_user_bad();					\
+	break;								\
+    }									\
+    __gu_err;								\
 })
 #define __get_user(x, ptr) get_user(x, ptr)
 
_

Patches currently in -mm which might be from akpm@xxxxxxxx are

origin.patch
m48t86-ia64-build-fix.patch
m68k-get_user-build-fix.patch
git-acpi.patch
acpi-update-asus_acpi-driver-registration-fix.patch
catch-notification-of-memory-add-event-of-acpi-via-container-driver-register-start-func-for-memory-device.patch
catch-notification-of-memory-add-event-of-acpi-via-container-driveravoid-redundant-call-add_memory.patch
acpi-atlas-acpi-driver-fix.patch
remove-for_each_cpu.patch
sony_apci-resume.patch
uninorth-agp-warning-fixes.patch
alpha-agp-warning-fix.patch
kauditd_thread-warning-fix.patch
git-cifs.patch
git-cpufreq-fixup.patch
powernow-k8-crash-workaround.patch
git-dvb.patch
git-gfs2.patch
git-infiniband.patch
git-intelfb.patch
git-klibc.patch
git-hdrcleanup-fixup.patch
git-hdrcleanup-vs-git-klibc-on-ia64.patch
git-hdrcleanup-vs-git-klibc-on-ia64-2.patch
git-hdrinstall-fixup.patch
revert-sata_sil24-sii3124-sata-driver-endian-problem.patch
git-libata-all.patch
libata-reduce-timeouts.patch
sdhci-truncated-pointer-fix.patch
git-mtd.patch
git-mtd-fixup.patch
git-netdev-all.patch
git-netdev-all-fixup.patch
smc911x-Kconfig-fix.patch
pci-error-recovery-e1000-network-device-driver.patch
git-net.patch
git-net-git-klibc-fixup.patch
git-nfs-fixup.patch
git-powerpc.patch
powerpc-kbuild-warning-fix.patch
git-rbtree.patch
git-sas.patch
kconfigurable-resources-core-changes-i386-fix.patch
kconfigurable-resources-core-changes-fix.patch
typesh-sector_t-and-blkcnt_t-arent-for-userspace.patch
kconfigurable-resources-mtd-fixes.patch
megaraid_sas-add-support-for-zcr-controller-fix.patch
areca-raid-linux-scsi-driver.patch
git-scsi-target-warning-fix.patch
git-scsi-target-fixup.patch
git-supertrak-fixup.patch
x86_64-mm-moving-phys_proc_id-and-cpu_core_id-to-cpuinfo_x86-warning-fix.patch
x86_64-dont-warn-for-overflow-in-nommu-case-when-dma_mask-is-32bit-fix.patch
pg_uncached-is-ia64-only.patch
fix-update_mmu_cache-in-fremapc-fix.patch
page-migration-simplify-migrate_pages-tweaks.patch
page-migration-support-moving-of-individual-pages-x86-support-fix.patch
acx1xx-wireless-driver.patch
tiacx-pci-build-fix.patch
x86-kernel-irq-balancer-fix-tidy.patch
i386-moving-phys_proc_id-and-cpu_core_id-to-cpuinfo_x86-warning-fix.patch
vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-tidy.patch
vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-arch_vma_name-fix.patch
vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386.patch
vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386-2.patch
prune_one_dentry-tweaks.patch
mmput-might-sleep.patch
jbd-avoid-kfree-null.patch
ext3_clear_inode-avoid-kfree-null.patch
leds-amstrad-delta-led-support-tidy.patch
connector-exports.patch
config_net=n-build-fix.patch
rewritten-backlight-infrastructure-for-portable-apple-computers-fix.patch
allow-for-per-cpu-data-being-in-tdata-and-tbss-sections-fix.patch
allow-for-per-cpu-data-being-in-tdata-and-tbss-sections-tidy.patch
deprecate-smbfs-in-favour-of-cifs.patch
msnd-section-fix.patch
openpromfs-factorize-out-tidy.patch
add-export_unused_symbol-and-export_unused_symbol_gpl-default.patch
kernel-sysc-cleanups-fix.patch
cpqarray-section-fix.patch
pdflush-handle-resume-wakeups.patch
schedule_on_each_cpu-reduce-kmalloc-size.patch
ax88796-parallel-port-driver-build-fix.patch
keys-fix-race-between-two-instantiators-of-a-key-tidy.patch
for_each_cpu_mask-warning-fix.patch
add-max6902-rtc-support-tidy.patch
per-task-delay-accounting-proc-export-of-aggregated-block-i-o-delays-warning-fix.patch
add-via-hw-rng-driver-fix.patch
hangcheck-remove-monotomic_clock-on-x86.patch
sched-fix-smt-nice-lock-contention-and-optimization-tidy.patch
swap-prefetch-fix-lru_cache_add_tail-tidy.patch
mark-address_space_operations-const-vs-ecryptfs-mmap-operations.patch
ecryptfs-alpha-build-fix.patch
namespaces-add-nsproxy-dont-include-compileh.patch
namespaces-utsname-switch-to-using-uts-namespaces-alpha-fix.patch
namespaces-utsname-use-init_utsname-when-appropriate-cifs-update.patch
namespaces-utsname-implement-utsname-namespaces-export.patch
namespaces-utsname-implement-utsname-namespaces-dont-include-compileh.patch
namespaces-utsname-sysctl-hack-cleanup-2-fix.patch
readahead-sysctl-parameters-fix.patch
make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch
reiser4-hardirq-include-fix.patch
reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch
ide_dma_speed-fixes-warning-fix.patch
ide_dma_speed-fixes-tidy.patch
hpt3xx-rework-rate-filtering-tidy.patch
savagefb-add-state-save-and_restore-hooks-tidy.patch
au1100fb-add-power-management-support-tidy.patch
lib-add-idr_replace-tidy.patch
genirq-rename-desc-handler-to-desc-chip-power-fix.patch
genirq-rename-desc-handler-to-desc-chip-ia64-fix.patch
genirq-rename-desc-handler-to-desc-chip-ia64-fix-2.patch
genirq-convert-the-i386-architecture-to-irq-chips-fix-2.patch
lock-validator-beautify-x86_64-stacktraces-fix.patch
lock-validator-stacktrace-build-fix.patch
lock-validator-stacktrace-warning-fix.patch
lock-validator-irqtrace-core-powerpc-fix-1.patch
lock-validator-irqtrace-core-non-x86-fix.patch
lock-validator-irqtrace-core-non-x86-fix-2.patch
lock-validator-irqtrace-core-non-x86-fix-3.patch
lock-validator-add-per_cpu_offset-fix.patch
lock-validator-core-multichar-fix.patch
lock-validator-prove-rwsem-locking-correctness-fix.patch
lock-validator-prove-rwsem-locking-correctness-powerpc-fix.patch
lock-validator-special-locking-serial-fix.patch
lock-validator-special-locking-sb-s_umount-fix.patch
lock-validator-enable-lock-validator-in-kconfig-not-yet.patch
kgdb-core-lite-add-reboot-command.patch
kgdb-8250-fix.patch
nr_blockdev_pages-in_interrupt-warning.patch
device-suspend-debug.patch
revert-tty-buffering-comment-out-debug-code.patch
slab-leaks3-default-y.patch
x86-kmap_atomic-debugging.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux