1 diff -Nur c3000_pre/linux/arch/cris/drivers/ds1302.c c3000_test/linux/arch/cris/drivers/ds1302.c
2 --- c3000_pre/linux/arch/cris/drivers/ds1302.c 2004-08-21 09:48:08.000000000 +0900
3 +++ c3000_test/linux/arch/cris/drivers/ds1302.c 2004-12-13 23:30:00.000000000 +0900
6 struct rtc_time rtc_tm;
8 + memset(&rtc_tm, 0, sizeof (struct rtc_time));
10 if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time)))
12 diff -Nur c3000_pre/linux/arch/m68k/bvme6000/rtc.c c3000_test/linux/arch/m68k/bvme6000/rtc.c
13 --- c3000_pre/linux/arch/m68k/bvme6000/rtc.c 2004-08-21 09:48:10.000000000 +0900
14 +++ c3000_test/linux/arch/m68k/bvme6000/rtc.c 2004-12-13 23:30:00.000000000 +0900
16 /* Ensure clock and real-time-mode-register are accessible */
17 msr = rtc->msr & 0xc0;
19 + memset(&wtime, 0, sizeof(struct rtc_time));
21 wtime.tm_sec = BCD2BIN(rtc->bcd_sec);
22 wtime.tm_min = BCD2BIN(rtc->bcd_min);
23 diff -Nur c3000_pre/linux/arch/m68k/mvme16x/rtc.c c3000_test/linux/arch/m68k/mvme16x/rtc.c
24 --- c3000_pre/linux/arch/m68k/mvme16x/rtc.c 2004-08-21 09:48:11.000000000 +0900
25 +++ c3000_test/linux/arch/m68k/mvme16x/rtc.c 2004-12-13 23:30:00.000000000 +0900
28 /* Ensure clock and real-time-mode-register are accessible */
30 + memset(&wtime, 0, sizeof(struct rtc_time));
31 wtime.tm_sec = BCD2BIN(rtc->bcd_sec);
32 wtime.tm_min = BCD2BIN(rtc->bcd_min);
33 wtime.tm_hour = BCD2BIN(rtc->bcd_hr);
34 diff -Nur c3000_pre/linux/drivers/char/efirtc.c c3000_test/linux/drivers/char/efirtc.c
35 --- c3000_pre/linux/drivers/char/efirtc.c 2004-08-21 09:48:25.000000000 +0900
36 +++ c3000_test/linux/drivers/char/efirtc.c 2004-12-13 23:30:00.000000000 +0900
39 convert_from_efi_time(efi_time_t *eft, struct rtc_time *wtime)
41 + memset(wtime, 0, sizeof(struct rtc_time));
42 wtime->tm_sec = eft->second;
43 wtime->tm_min = eft->minute;
44 wtime->tm_hour = eft->hour;
45 diff -Nur c3000_pre/linux/drivers/char/rtc.c c3000_test/linux/drivers/char/rtc.c
46 --- c3000_pre/linux/drivers/char/rtc.c 2004-08-21 09:48:25.000000000 +0900
47 +++ c3000_test/linux/drivers/char/rtc.c 2004-12-13 23:30:00.000000000 +0900
49 * means "don't care" or "match all". Only the tm_hour,
50 * tm_min, and tm_sec values are filled in.
53 + memset(&wtime, 0, sizeof(struct rtc_time));
54 get_rtc_alm_time(&wtime);
59 case RTC_RD_TIME: /* Read the time/date from RTC */
61 + memset(&wtime, 0, sizeof(struct rtc_time));
65 diff -Nur c3000_pre/linux/drivers/macintosh/rtc.c c3000_test/linux/drivers/macintosh/rtc.c
66 --- c3000_pre/linux/drivers/macintosh/rtc.c 2004-08-21 09:48:35.000000000 +0900
67 +++ c3000_test/linux/drivers/macintosh/rtc.c 2004-12-13 23:30:00.000000000 +0900
70 if (ppc_md.get_rtc_time)
72 + memset(&rtc_tm, 0, sizeof(struct rtc_time));
73 get_rtc_time(&rtc_tm);
75 if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time)))
76 diff -Nur c3000_pre/linux/drivers/sbus/char/rtc.c c3000_test/linux/drivers/sbus/char/rtc.c
77 --- c3000_pre/linux/drivers/sbus/char/rtc.c 2004-08-21 09:48:39.000000000 +0900
78 +++ c3000_test/linux/drivers/sbus/char/rtc.c 2004-12-13 23:30:00.000000000 +0900
83 + memset(&rtc_tm, 0, sizeof(struct rtc_time));
84 get_rtc_time(&rtc_tm);
86 if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time)))
87 diff -Nur c3000_pre/linux/mm/mmap.c c3000_test/linux/mm/mmap.c
88 --- c3000_pre/linux/mm/mmap.c 2004-08-21 09:49:15.000000000 +0900
89 +++ c3000_test/linux/mm/mmap.c 2004-12-13 23:27:31.000000000 +0900
94 + if ((addr + len) > TASK_SIZE || (addr + len) < addr)
100 diff -Nur c3000_pre/linux/mm/mremap.c c3000_test/linux/mm/mremap.c
101 --- c3000_pre/linux/mm/mremap.c 2004-08-21 09:49:15.000000000 +0900
102 +++ c3000_test/linux/mm/mremap.c 2004-12-13 23:30:18.000000000 +0900
105 if (new_len > TASK_SIZE || new_addr > TASK_SIZE - new_len)
108 + * Allow new_len == 0 only if new_addr == addr
109 + * to preserve truncation in place (that was working
110 + * safe and some app may depend on it).
112 + if (unlikely(!new_len && new_addr != addr))
115 /* Check if the location we're moving into overlaps the
116 * old location at all, and fail if it does.
117 @@ -252,16 +259,20 @@
118 if ((addr <= new_addr) && (addr+old_len) > new_addr)
121 - do_munmap(current->mm, new_addr, new_len);
122 + ret = do_munmap(current->mm, new_addr, new_len);
123 + if (ret && new_len)
128 * Always allow a shrinking remap: that just unmaps
129 * the unnecessary pages..
132 if (old_len >= new_len) {
133 - do_munmap(current->mm, addr+new_len, old_len - new_len);
134 + ret = do_munmap(current->mm, addr+new_len, old_len - new_len);
135 + if (ret && old_len != new_len)
138 if (!(flags & MREMAP_FIXED) || (new_addr == addr))