예제 #1
0
static void tce_freemulti_pSeriesLP(struct iommu_table *tbl, long tcenum, long npages)
{
    u64 rc;

    rc = plpar_tce_stuff((u64)tbl->it_index, (u64)tcenum << 12, 0, npages);

    if (rc && printk_ratelimit()) {
        printk("tce_freemulti_pSeriesLP: plpar_tce_stuff failed\n");
        printk("\trc      = %lld\n", rc);
        printk("\tindex   = 0x%llx\n", (u64)tbl->it_index);
        printk("\tnpages  = 0x%llx\n", (u64)npages);
        show_stack(current, (unsigned long *)__get_SP());
    }
}
예제 #2
0
파일: iommu.c 프로젝트: 1x23/unifi-gpl
static void tce_freemulti_pSeriesLP(struct iommu_table *tbl, long tcenum, long npages)
{
	u64 rc;
	union tce_entry tce;

	tcenum <<= TCE_PAGE_FACTOR;
	npages <<= TCE_PAGE_FACTOR;

	tce.te_word = 0;

	rc = plpar_tce_stuff((u64)tbl->it_index,
			   (u64)tcenum << 12,
			   tce.te_word,
			   npages);

	if (rc && printk_ratelimit()) {
		printk("tce_freemulti_pSeriesLP: plpar_tce_stuff failed\n");
		printk("\trc      = %ld\n", rc);
		printk("\tindex   = 0x%lx\n", (u64)tbl->it_index);
		printk("\tnpages  = 0x%lx\n", (u64)npages);
		printk("\ttce val = 0x%lx\n", tce.te_word );
		show_stack(current, (unsigned long *)__get_SP());
	}
}