···334334{335335 if (notscsync || !cpu_has_tsc)336336 return;337337- sync_tsc(boot_cpu_id);337337+ sync_tsc(0);338338}339339340340static __init int notscsync_setup(char *s)
+1-1
drivers/acpi/motherboard.c
···4242 */4343#define IS_RESERVED_ADDR(base, len) \4444 (((len) > 0) && ((base) > 0) && ((base) + (len) < IO_SPACE_LIMIT) \4545- && ((base) + (len) > 0x1000))4545+ && ((base) + (len) > PCIBIOS_MIN_IO))4646/*4747 * Clearing the flag (IORESOURCE_BUSY) allows drivers to use4848 * the io ports if they really know they can use it, while
+8-4
drivers/char/mem.c
···261261262262static int mmap_kmem(struct file * file, struct vm_area_struct * vma)263263{264264- unsigned long long val;264264+ unsigned long pfn;265265+266266+ /* Turn a kernel-virtual address into a physical page frame */267267+ pfn = __pa((u64)vma->vm_pgoff << PAGE_SHIFT) >> PAGE_SHIFT;268268+265269 /*266270 * RED-PEN: on some architectures there is more mapped memory267271 * than available in mem_map which pfn_valid checks···273269 *274270 * RED-PEN: vmalloc is not supported right now.275271 */276276- if (!pfn_valid(vma->vm_pgoff))272272+ if (!pfn_valid(pfn))277273 return -EIO;278278- val = (u64)vma->vm_pgoff << PAGE_SHIFT;279279- vma->vm_pgoff = __pa(val) >> PAGE_SHIFT;274274+275275+ vma->vm_pgoff = pfn;280276 return mmap_mem(file, vma);281277}282278
···183183 * cross a page boundy.184184 */185185#define SEGMENTX_LEN (sizeof(struct SGentry)*DC395x_MAX_SG_LISTENTRY)186186-#define VIRTX_LEN (sizeof(void *) * DC395x_MAX_SG_LISTENTRY)186186+187187188188struct SGentry {189189 u32 address; /* bus! address */···235235 u8 sg_count; /* No of HW sg entries for this request */236236 u8 sg_index; /* Index of HW sg entry for this request */237237 u32 total_xfer_length; /* Total number of bytes remaining to be transfered */238238- void **virt_map;239238 unsigned char *virt_addr; /* Virtual address of current transfer position */240239241240 /*···10211022 reqlen, cmd->request_buffer, cmd->use_sg,10221023 srb->sg_count);1023102410251025+ srb->virt_addr = page_address(sl->page);10241026 for (i = 0; i < srb->sg_count; i++) {10251025- u32 seglen = (u32)sg_dma_len(sl + i);10261026- sgp[i].address = (u32)sg_dma_address(sl + i);10271027+ u32 busaddr = (u32)sg_dma_address(&sl[i]);10281028+ u32 seglen = (u32)sl[i].length;10291029+ sgp[i].address = busaddr;10271030 sgp[i].length = seglen;10281031 srb->total_xfer_length += seglen;10291029- srb->virt_map[i] = kmap(sl[i].page);10301032 }10311031- srb->virt_addr = srb->virt_map[0];10321033 sgp += srb->sg_count - 1;1033103410341035 /*···19751976 int segment = cmd->use_sg;19761977 u32 xferred = srb->total_xfer_length - left; /* bytes transfered */19771978 struct SGentry *psge = srb->segment_x + srb->sg_index;19781978- void **virt = srb->virt_map;1979197919801980 dprintkdbg(DBG_0,19811981 "sg_update_list: Transfered %i of %i bytes, %i remain\n",···2014201620152017 /* We have to walk the scatterlist to find it */20162018 sg = (struct scatterlist *)cmd->request_buffer;20172017- idx = 0;20182019 while (segment--) {20192020 unsigned long mask =20202021 ~((unsigned long)sg->length - 1) & PAGE_MASK;20212022 if ((sg_dma_address(sg) & mask) == (psge->address & mask)) {20222022- srb->virt_addr = virt[idx] + (psge->address & ~PAGE_MASK);20232023+ srb->virt_addr = (page_address(sg->page)20242024+ + psge->address -20252025+ (psge->address & PAGE_MASK));20232026 return;20242027 }20252028 ++sg;20262026- ++idx;20272029 }2028203020292031 dprintkl(KERN_ERR, "sg_update_list: sg_to_virt failed\n");···21492151 DC395x_read32(acb, TRM_S1040_DMA_CXCNT));21502152 }21512153 /*21522152- * calculate all the residue data that not yet transfered21542154+ * calculate all the residue data that not yet tranfered21532155 * SCSI transfer counter + left in SCSI FIFO data21542156 *21552157 * .....TRM_S1040_SCSI_COUNTER (24bits)···32673269 struct scsi_cmnd *cmd = srb->cmd;32683270 enum dma_data_direction dir = cmd->sc_data_direction;32693271 if (cmd->use_sg && dir != PCI_DMA_NONE) {32703270- int i;32713272 /* unmap DC395x SG list */32723273 dprintkdbg(DBG_SG, "pci_unmap_srb: list=%08x(%05x)\n",32733274 srb->sg_bus_addr, SEGMENTX_LEN);···32763279 dprintkdbg(DBG_SG, "pci_unmap_srb: segs=%i buffer=%p\n",32773280 cmd->use_sg, cmd->request_buffer);32783281 /* unmap the sg segments */32793279- for (i = 0; i < srb->sg_count; i++)32803280- kunmap(virt_to_page(srb->virt_map[i]));32813282 pci_unmap_sg(acb->dev,32823283 (struct scatterlist *)cmd->request_buffer,32833284 cmd->use_sg, dir);···3322332733233328 if (cmd->use_sg) {33243329 struct scatterlist* sg = (struct scatterlist *)cmd->request_buffer;33253325- ptr = (struct ScsiInqData *)(srb->virt_map[0] + sg->offset);33303330+ ptr = (struct ScsiInqData *)(page_address(sg->page) + sg->offset);33263331 } else {33273332 ptr = (struct ScsiInqData *)(cmd->request_buffer);33283333 }···42574262 const unsigned srbs_per_page = PAGE_SIZE/SEGMENTX_LEN;4258426342594264 for (i = 0; i < DC395x_MAX_SRB_CNT; i += srbs_per_page)42604260- kfree(acb->srb_array[i].segment_x);42614261-42624262- vfree(acb->srb_array[0].virt_map);42654265+ if (acb->srb_array[i].segment_x)42664266+ kfree(acb->srb_array[i].segment_x);42634267}4264426842654269···42744280 int srb_idx = 0;42754281 unsigned i = 0;42764282 struct SGentry *ptr;42774277- void **virt_array;4278428342794279- for (i = 0; i < DC395x_MAX_SRB_CNT; i++) {42844284+ for (i = 0; i < DC395x_MAX_SRB_CNT; i++)42804285 acb->srb_array[i].segment_x = NULL;42814281- acb->srb_array[i].virt_map = NULL;42824282- }4283428642844287 dprintkdbg(DBG_1, "Allocate %i pages for SG tables\n", pages);42854288 while (pages--) {···42974306 ptr + (i * DC395x_MAX_SG_LISTENTRY);42984307 else42994308 dprintkl(KERN_DEBUG, "No space for tmsrb SG table reserved?!\n");43004300-43014301- virt_array = vmalloc((DC395x_MAX_SRB_CNT + 1) * DC395x_MAX_SG_LISTENTRY * sizeof(void*));43024302-43034303- if (!virt_array) {43044304- adapter_sg_tables_free(acb);43054305- return 1;43064306- }43074307-43084308- for (i = 0; i < DC395x_MAX_SRB_CNT + 1; i++) {43094309- acb->srb_array[i].virt_map = virt_array;43104310- virt_array += DC395x_MAX_SG_LISTENTRY;43114311- }43124312-43134309 return 0;43144310}43154311
+2-2
drivers/video/fbmem.c
···628628int629629fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)630630{631631- int err;631631+ int err, flags = info->flags;632632633633 if (var->activate & FB_ACTIVATE_INV_MODE) {634634 struct fb_videomode mode1, mode2;···682682 !list_empty(&info->modelist))683683 err = fb_add_videomode(&mode, &info->modelist);684684685685- if (!err && info->flags & FBINFO_MISC_USEREVENT) {685685+ if (!err && (flags & FBINFO_MISC_USEREVENT)) {686686 struct fb_event event;687687688688 info->flags &= ~FBINFO_MISC_USEREVENT;
+27-23
drivers/video/intelfb/intelfbdrv.c
···583583 return -ENODEV;584584 }585585586586- /* Map the fb and MMIO regions */587587- dinfo->aperture.virtual = (u8 __iomem *)ioremap_nocache588588- (dinfo->aperture.physical, dinfo->aperture.size);589589- if (!dinfo->aperture.virtual) {590590- ERR_MSG("Cannot remap FB region.\n");591591- cleanup(dinfo);592592- return -ENODEV;593593- }594594- dinfo->mmio_base =595595- (u8 __iomem *)ioremap_nocache(dinfo->mmio_base_phys,596596- INTEL_REG_SIZE);597597- if (!dinfo->mmio_base) {598598- ERR_MSG("Cannot remap MMIO region.\n");599599- cleanup(dinfo);600600- return -ENODEV;601601- }602602-603586 /* Get the chipset info. */604587 dinfo->pci_chipset = pdev->device;605588···613630 dinfo->accel = 0;614631 }615632633633+ if (MB(voffset) < stolen_size)634634+ offset = (stolen_size >> 12);635635+ else636636+ offset = ROUND_UP_TO_PAGE(MB(voffset))/GTT_PAGE_SIZE;637637+616638 /* Framebuffer parameters - Use all the stolen memory if >= vram */617617- if (ROUND_UP_TO_PAGE(stolen_size) >= MB(vram)) {639639+ if (ROUND_UP_TO_PAGE(stolen_size) >= ((offset << 12) + MB(vram))) {618640 dinfo->fb.size = ROUND_UP_TO_PAGE(stolen_size);641641+ dinfo->fb.offset = 0;619642 dinfo->fbmem_gart = 0;620643 } else {621644 dinfo->fb.size = MB(vram);···652663 return -ENODEV;653664 }654665655655- if (MB(voffset) < stolen_size)656656- offset = (stolen_size >> 12);657657- else658658- offset = ROUND_UP_TO_PAGE(MB(voffset))/GTT_PAGE_SIZE;659659-660666 /* set the mem offsets - set them after the already used pages */661667 if (dinfo->accel) {662668 dinfo->ring.offset = offset + gtt_info.current_memory;···664680 dinfo->fb.offset = offset +665681 + gtt_info.current_memory + (dinfo->ring.size >> 12)666682 + (dinfo->cursor.size >> 12);683683+ }684684+685685+ /* Map the fb and MMIO regions */686686+ /* ioremap only up to the end of used aperture */687687+ dinfo->aperture.virtual = (u8 __iomem *)ioremap_nocache688688+ (dinfo->aperture.physical, (dinfo->fb.offset << 12)689689+ + dinfo->fb.size);690690+ if (!dinfo->aperture.virtual) {691691+ ERR_MSG("Cannot remap FB region.\n");692692+ cleanup(dinfo);693693+ return -ENODEV;694694+ }695695+696696+ dinfo->mmio_base =697697+ (u8 __iomem *)ioremap_nocache(dinfo->mmio_base_phys,698698+ INTEL_REG_SIZE);699699+ if (!dinfo->mmio_base) {700700+ ERR_MSG("Cannot remap MMIO region.\n");701701+ cleanup(dinfo);702702+ return -ENODEV;667703 }668704669705 /* Allocate memories (which aren't stolen) */
+1-1
drivers/w1/w1.c
···593593 * Return 0 - device(s) present, 1 - no devices present.594594 */595595 if (w1_reset_bus(dev)) {596596- dev_info(&dev->dev, "No devices present on the wire.\n");596596+ dev_dbg(&dev->dev, "No devices present on the wire.\n");597597 break;598598 }599599
+6
fs/cifs/CHANGES
···11+Version 1.3522+------------33+Add writepage performance improvements. Fix path name conversions44+for long filenames on mounts which were done with "mapchars" mount option55+specified.66+17Version 1.3428------------39Fix error mapping of the TOO_MANY_LINKS (hardlinks) case.
···593593 */594594 inode->i_uid = current->fsuid;595595 inode->i_mode = mode;596596+ /* Make inode invalid - just in case we are going to drop it before597597+ * the initialization happens */598598+ INODE_PKEY(inode)->k_objectid = 0;596599597600 if (dir->i_mode & S_ISGID) {598601 inode->i_gid = dir->i_gid;
+3-1
include/asm-i386/pci.h
···1818#define pcibios_scan_all_fns(a, b) 019192020extern unsigned long pci_mem_start;2121-#define PCIBIOS_MIN_IO 0x40002121+#define PCIBIOS_MIN_IO 0x10002222#define PCIBIOS_MIN_MEM (pci_mem_start)2323+2424+#define PCIBIOS_MIN_CARDBUS_IO 0x400023252426void pcibios_config_init(void);2527struct pci_bus * pcibios_scan_root(int bus);