On 5/12/21 10:39 AM, tangbin wrote:
Hi Lars-Peter:
Thanks for you reply!
Hi,
Thanks for the patch. Aren't those two expressions equivalent? Are
you seeing an issue with the current code? If so can you include that
in the commit message?
- Lars
When submitting this patch, I actually thought about it for a
while, but finally decided to submit it, my reason is as follows:
In numerical data of address, &ad7768_interrupt is equal to
ad7768_interrupt, and the compilation can pass. But I think they are
not the same, ad7768_interrupt is the first
address of the function, and its type is irqreturn_t,
&ad7768_interrupt represents the address of an object that points to
the function ad7768_interrupt().
So I think they are not the same, For previous experience with
devm_request_irq(), I send this patch. If I'm wrong, I'm sorry to
bother you.
Have a look at
https://stackoverflow.com/questions/6893285/why-do-function-pointer-definitions-work-with-any-number-of-ampersands-or-as
for some background on this.
You can also easily verify that they are the same with a simple test program
static void foo(void) {}
int main(void) {
printf("%p %p %d\n", foo, &foo, foo == &foo);
}