Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'stable/for-linus-3.6-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen

Pull Xen bug-fixes from Konrad Rzeszutek Wilk:
* Fix for TLB flushing introduced in v3.6
* Fix Xen-SWIOTLB not using proper DMA mask - device had 64bit but
in a 32-bit kernel we need to allocate for coherent pages from a
32-bit pool.
* When trying to re-use P2M nodes we had a one-off error and triggered
a BUG_ON check with specific CONFIG_ option.
* When doing FLR in Xen-PCI-backend we would first do FLR then save the
PCI configuration space. We needed to do it the other way around.

* tag 'stable/for-linus-3.6-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
xen/pciback: Fix proper FLR steps.
xen: Use correct masking in xen_swiotlb_alloc_coherent.
xen: fix logical error in tlb flushing
xen/p2m: Fix one-off error in checking the P2M tree directory.

+7 -7
+1 -1
arch/x86/xen/mmu.c
··· 1283 1283 cpumask_clear_cpu(smp_processor_id(), to_cpumask(args->mask)); 1284 1284 1285 1285 args->op.cmd = MMUEXT_TLB_FLUSH_MULTI; 1286 - if (start != TLB_FLUSH_ALL && (end - start) <= PAGE_SIZE) { 1286 + if (end != TLB_FLUSH_ALL && (end - start) <= PAGE_SIZE) { 1287 1287 args->op.cmd = MMUEXT_INVLPG_MULTI; 1288 1288 args->op.arg1.linear_addr = start; 1289 1289 }
+1 -1
arch/x86/xen/p2m.c
··· 599 599 if (p2m_index(set_pfn)) 600 600 return false; 601 601 602 - for (pfn = 0; pfn <= MAX_DOMAIN_PAGES; pfn += P2M_PER_PAGE) { 602 + for (pfn = 0; pfn < MAX_DOMAIN_PAGES; pfn += P2M_PER_PAGE) { 603 603 topidx = p2m_top_index(pfn); 604 604 605 605 if (!p2m_top[topidx])
+1 -1
drivers/xen/swiotlb-xen.c
··· 232 232 return ret; 233 233 234 234 if (hwdev && hwdev->coherent_dma_mask) 235 - dma_mask = hwdev->coherent_dma_mask; 235 + dma_mask = dma_alloc_coherent_mask(hwdev, flags); 236 236 237 237 phys = virt_to_phys(ret); 238 238 dev_addr = xen_phys_to_bus(phys);
+4 -4
drivers/xen/xen-pciback/pci_stub.c
··· 353 353 if (err) 354 354 goto config_release; 355 355 356 - dev_dbg(&dev->dev, "reseting (FLR, D3, etc) the device\n"); 357 - __pci_reset_function_locked(dev); 358 - 359 356 /* We need the device active to save the state. */ 360 357 dev_dbg(&dev->dev, "save state of device\n"); 361 358 pci_save_state(dev); 362 359 dev_data->pci_saved_state = pci_store_saved_state(dev); 363 360 if (!dev_data->pci_saved_state) 364 361 dev_err(&dev->dev, "Could not store PCI conf saved state!\n"); 365 - 362 + else { 363 + dev_dbg(&dev->dev, "reseting (FLR, D3, etc) the device\n"); 364 + __pci_reset_function_locked(dev); 365 + } 366 366 /* Now disable the device (this also ensures some private device 367 367 * data is setup before we export) 368 368 */