mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 14:14:24 +08:00
powerpc fixes for 6.7 #2
- Finish a refactor of pgprot_framebuffer() which dependend on some changes that were merged via the drm tree. - Fix some kernel-doc warnings to quieten the bots. Thanks to: Nathan Lynch, Thomas Zimmermann. -----BEGIN PGP SIGNATURE----- iQJHBAABCAAxFiEEJFGtCPCthwEv2Y/bUevqPMjhpYAFAmVQIV8THG1wZUBlbGxl cm1hbi5pZC5hdQAKCRBR6+o8yOGlgKTmEACKY2QHnc8ppY2V3W2D62q336OXU8Jj ljJdPj/4dMlbFxi7RcUHhENGx97KN7pJX/bIOYv+iK4C34B1sM/sMG6OxXzWrlJw ff2MnxE3ekljFerPdtx0fu3upCsr93hB3spm+/9pb/5V5SViK/gJt70dLUJuZ4ei Y4AW0mnS4dMNMPZDGwI9GHbjCdq1GAbG9JdfDWbltKu2G3zNuM4MTa0IVJY/kHgU 8dbrPcs4LooC/RXJDTVdpBpShKg4i5sejcK30BP8qV0EXuez09lIRSk464n4aBEi LWnKavsLOAAGYhEFCuBsn/ZFbWUWCmV6ARcC7ydZ+ukhZi+0iioPMh1dGO0Bo+rP qesGLMddvsRZHInFN44NLDFVv03NA4V97LazvLQoUKSw8Oyt7aglLCmy+3YZL5Pd Zny/Pi5Vq3Ma45lqGuafoaT2qhERz4Z3tbedtRcdO3APVnvtGtgWUUPym8xNKAe4 mOx0R1EzVdD3QXjh1Fwi9We69tdu5yRDmu+qne07x2T/vJN5zPR9k6sZXkuv85zH jX53GlVyLTLXVuD00pFcL9/wjlWhzFHk2BUCg8scKgkqdadN323uZ9qhyn1/VJFt E+2j0vLUlRA3Bj+WqcbY8TNq7HsDo91nt1ceYDtnHmRiZcSjRj/rh+cNyd28j+Zk Z4hXJkznVjBHAw== =Qaeg -----END PGP SIGNATURE----- Merge tag 'powerpc-6.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - Finish a refactor of pgprot_framebuffer() which dependend on some changes that were merged via the drm tree - Fix some kernel-doc warnings to quieten the bots Thanks to Nathan Lynch and Thomas Zimmermann. * tag 'powerpc-6.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/rtas: Fix ppc_rtas_rmo_buf_show() kernel-doc powerpc/pseries/rtas-work-area: Fix rtas_work_area_reserve_arena() kernel-doc powerpc/fb: Call internal __phys_mem_access_prot() in fbdev code powerpc: Remove file parameter from phys_mem_access_prot() powerpc/machdep: Remove trailing whitespaces
This commit is contained in:
commit
5dd2020f33
@ -8,12 +8,7 @@ static inline pgprot_t pgprot_framebuffer(pgprot_t prot,
|
||||
unsigned long vm_start, unsigned long vm_end,
|
||||
unsigned long offset)
|
||||
{
|
||||
/*
|
||||
* PowerPC's implementation of phys_mem_access_prot() does
|
||||
* not use the file argument. Set it to NULL in preparation
|
||||
* of later updates to the interface.
|
||||
*/
|
||||
return phys_mem_access_prot(NULL, PHYS_PFN(offset), vm_end - vm_start, prot);
|
||||
return __phys_mem_access_prot(PHYS_PFN(offset), vm_end - vm_start, prot);
|
||||
}
|
||||
#define pgprot_framebuffer pgprot_framebuffer
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include <linux/export.h>
|
||||
|
||||
struct pt_regs;
|
||||
struct pci_bus;
|
||||
struct pci_bus;
|
||||
struct device_node;
|
||||
struct iommu_table;
|
||||
struct rtc_time;
|
||||
@ -78,8 +78,8 @@ struct machdep_calls {
|
||||
unsigned char (*nvram_read_val)(int addr);
|
||||
void (*nvram_write_val)(int addr, unsigned char val);
|
||||
ssize_t (*nvram_write)(char *buf, size_t count, loff_t *index);
|
||||
ssize_t (*nvram_read)(char *buf, size_t count, loff_t *index);
|
||||
ssize_t (*nvram_size)(void);
|
||||
ssize_t (*nvram_read)(char *buf, size_t count, loff_t *index);
|
||||
ssize_t (*nvram_size)(void);
|
||||
void (*nvram_sync)(void);
|
||||
|
||||
/* Exception handlers */
|
||||
@ -102,12 +102,11 @@ struct machdep_calls {
|
||||
*/
|
||||
long (*feature_call)(unsigned int feature, ...);
|
||||
|
||||
/* Get legacy PCI/IDE interrupt mapping */
|
||||
/* Get legacy PCI/IDE interrupt mapping */
|
||||
int (*pci_get_legacy_ide_irq)(struct pci_dev *dev, int channel);
|
||||
|
||||
|
||||
/* Get access protection for /dev/mem */
|
||||
pgprot_t (*phys_mem_access_prot)(struct file *file,
|
||||
unsigned long pfn,
|
||||
pgprot_t (*phys_mem_access_prot)(unsigned long pfn,
|
||||
unsigned long size,
|
||||
pgprot_t vma_prot);
|
||||
|
||||
|
@ -105,9 +105,7 @@ extern void of_scan_pci_bridge(struct pci_dev *dev);
|
||||
extern void of_scan_bus(struct device_node *node, struct pci_bus *bus);
|
||||
extern void of_rescan_bus(struct device_node *node, struct pci_bus *bus);
|
||||
|
||||
struct file;
|
||||
extern pgprot_t pci_phys_mem_access_prot(struct file *file,
|
||||
unsigned long pfn,
|
||||
extern pgprot_t pci_phys_mem_access_prot(unsigned long pfn,
|
||||
unsigned long size,
|
||||
pgprot_t prot);
|
||||
|
||||
|
@ -120,9 +120,15 @@ static inline void mark_initmem_nx(void) { }
|
||||
int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address,
|
||||
pte_t *ptep, pte_t entry, int dirty);
|
||||
|
||||
pgprot_t __phys_mem_access_prot(unsigned long pfn, unsigned long size,
|
||||
pgprot_t vma_prot);
|
||||
|
||||
struct file;
|
||||
pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
|
||||
unsigned long size, pgprot_t vma_prot);
|
||||
static inline pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
|
||||
unsigned long size, pgprot_t vma_prot)
|
||||
{
|
||||
return __phys_mem_access_prot(pfn, size, vma_prot);
|
||||
}
|
||||
#define __HAVE_PHYS_MEM_ACCESS_PROT
|
||||
|
||||
void __update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t *ptep);
|
||||
|
@ -521,8 +521,7 @@ int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct vm_area_struct *vma)
|
||||
* PCI device, it tries to find the PCI device first and calls the
|
||||
* above routine
|
||||
*/
|
||||
pgprot_t pci_phys_mem_access_prot(struct file *file,
|
||||
unsigned long pfn,
|
||||
pgprot_t pci_phys_mem_access_prot(unsigned long pfn,
|
||||
unsigned long size,
|
||||
pgprot_t prot)
|
||||
{
|
||||
|
@ -752,6 +752,8 @@ static int ppc_rtas_tone_volume_show(struct seq_file *m, void *v)
|
||||
|
||||
/**
|
||||
* ppc_rtas_rmo_buf_show() - Describe RTAS-addressable region for user space.
|
||||
* @m: seq_file output target.
|
||||
* @v: Unused.
|
||||
*
|
||||
* Base + size description of a range of RTAS-addressable memory set
|
||||
* aside for user space to use as work area(s) for certain RTAS
|
||||
|
@ -35,18 +35,18 @@ unsigned long long memory_limit;
|
||||
unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)] __page_aligned_bss;
|
||||
EXPORT_SYMBOL(empty_zero_page);
|
||||
|
||||
pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
|
||||
unsigned long size, pgprot_t vma_prot)
|
||||
pgprot_t __phys_mem_access_prot(unsigned long pfn, unsigned long size,
|
||||
pgprot_t vma_prot)
|
||||
{
|
||||
if (ppc_md.phys_mem_access_prot)
|
||||
return ppc_md.phys_mem_access_prot(file, pfn, size, vma_prot);
|
||||
return ppc_md.phys_mem_access_prot(pfn, size, vma_prot);
|
||||
|
||||
if (!page_is_ram(pfn))
|
||||
vma_prot = pgprot_noncached(vma_prot);
|
||||
|
||||
return vma_prot;
|
||||
}
|
||||
EXPORT_SYMBOL(phys_mem_access_prot);
|
||||
EXPORT_SYMBOL(__phys_mem_access_prot);
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
static DEFINE_MUTEX(linear_mapping_mutex);
|
||||
|
@ -184,6 +184,7 @@ machine_arch_initcall(pseries, rtas_work_area_allocator_init);
|
||||
|
||||
/**
|
||||
* rtas_work_area_reserve_arena() - Reserve memory suitable for RTAS work areas.
|
||||
* @limit: Upper limit for memblock allocation.
|
||||
*/
|
||||
void __init rtas_work_area_reserve_arena(const phys_addr_t limit)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user