Re: [PATCH] MIPS32/64: Add 'irq' command support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----Original Message-----
> Added support for the 'irq' series of commands in the MIPS32/64 architecture,
> except for the 'irq -d' command, others can be used.
> 
> The result of using the 'irq' command without this patch is as follows:
> irq: cannot determine number of IRQs
> 
> Signed-off-by: Youling Tang <tangyouling@xxxxxxxxxxx>

Acked-by: Kazuhito Hagio <k-hagio-ab@xxxxxxx>

Thanks,
Kazu

> ---
>  mips.c   | 10 ++++++++--
>  mips64.c | 14 ++++++++++++++
>  2 files changed, 22 insertions(+), 2 deletions(-)
> 
> diff --git a/mips.c b/mips.c
> index f73dfad..d6602e3 100644
> --- a/mips.c
> +++ b/mips.c
> @@ -1126,8 +1126,14 @@ mips_init(int when)
>  		machdep->get_irq_affinity = generic_get_irq_affinity;
>  		machdep->section_size_bits = _SECTION_SIZE_BITS;
>  		machdep->max_physmem_bits = _MAX_PHYSMEM_BITS;
> -		ARRAY_LENGTH_INIT(machdep->nr_irqs, irq_desc,
> -			"irq_desc", NULL, 0);
> +
> +		if (symbol_exists("irq_desc"))
> +			ARRAY_LENGTH_INIT(machdep->nr_irqs, irq_desc,
> +					  "irq_desc", NULL, 0);
> +		else if (kernel_symbol_exists("nr_irqs"))
> +			get_symbol_data("nr_irqs", sizeof(unsigned int),
> +					&machdep->nr_irqs);
> +
>  		mips_stackframe_init();
> 
>  		if (!machdep->hz)
> diff --git a/mips64.c b/mips64.c
> index 62ed799..b1d6acf 100644
> --- a/mips64.c
> +++ b/mips64.c
> @@ -1160,6 +1160,9 @@ mips64_dump_machdep_table(ulong arg)
>  	fprintf(fp, "       is_task_addr: mips64_is_task_addr()\n");
>  	fprintf(fp, "      verify_symbol: mips64_verify_symbol()\n");
>  	fprintf(fp, "         dis_filter: generic_dis_filter()\n");
> +	fprintf(fp, "           dump_irq: generic_dump_irq()\n");
> +	fprintf(fp, "    show_interrupts: generic_show_interrupts()\n");
> +	fprintf(fp, "   get_irq_affinity: generic_get_irq_affinity()\n");
>  	fprintf(fp, "           cmd_mach: mips64_cmd_mach()\n");
>  	fprintf(fp, "       get_smp_cpus: mips64_get_smp_cpus()\n");
>  	fprintf(fp, "          is_kvaddr: generic_is_kvaddr()\n");
> @@ -1246,6 +1249,9 @@ mips64_init(int when)
>  		machdep->is_task_addr = mips64_is_task_addr;
>  		machdep->get_smp_cpus = mips64_get_smp_cpus;
>  		machdep->dis_filter = generic_dis_filter;
> +		machdep->dump_irq = generic_dump_irq;
> +		machdep->show_interrupts = generic_show_interrupts;
> +		machdep->get_irq_affinity = generic_get_irq_affinity;
>  		machdep->value_to_symbol = generic_machdep_value_to_symbol;
>  		machdep->init_kernel_pgd = NULL;
>  		break;
> @@ -1257,6 +1263,14 @@ mips64_init(int when)
>  		mips64_stackframe_init();
>  		if (!machdep->hz)
>  			machdep->hz = 250;
> +
> +		if (symbol_exists("irq_desc"))
> +			ARRAY_LENGTH_INIT(machdep->nr_irqs, irq_desc,
> +					  "irq_desc", NULL, 0);
> +		else if (kernel_symbol_exists("nr_irqs"))
> +			get_symbol_data("nr_irqs", sizeof(unsigned int),
> +				&machdep->nr_irqs);
> +
>  		MEMBER_OFFSET_INIT(elf_prstatus_pr_reg, "elf_prstatus",
>  				   "pr_reg");
>  		STRUCT_SIZE_INIT(note_buf, "note_buf_t");
> --
> 2.1.0


--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://listman.redhat.com/mailman/listinfo/crash-utility




[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux