Commit 342d9653 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'parisc-for-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc architecture updates and fixes from Helge Deller:
 "Fixes for the IPv4 and IPv6 checksum functions, a fix for the 64-bit
  unaligned memory exception handler and various code cleanups.

  Most of the patches are tagged for stable series.

   - Fix inline assembly in ipv4 and ipv6 checksum functions (Guenter
     Roeck)

   - Rewrite 64-bit inline assembly of emulate_ldd() (Guenter Roeck)

   - Do not clobber carry/borrow bits in tophys and tovirt macros (John
     David Anglin)

   - Warn when kernel accesses unaligned memory"

* tag 'parisc-for-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: led: Convert to platform remove callback returning void
  parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds
  parisc: Fix csum_ipv6_magic on 64-bit systems
  parisc: Fix csum_ipv6_magic on 32-bit systems
  parisc: Fix ip_fast_csum
  parisc: Avoid clobbering the C/B bits in the PSW with tophys and tovirt macros
  parisc/unaligned: Rewrite 64-bit inline assembly of emulate_ldd()
  parisc: make parisc_bus_type const
  parisc: avoid c23 'nullptr' idenitifier
  parisc: Show kernel unaligned memory accesses
  parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367
parents c1f10ac8 26dd4878
......@@ -97,26 +97,28 @@
* version takes two arguments: a src and destination register.
* However, the source and destination registers can not be
* the same register.
*
* We use add,l to avoid clobbering the C/B bits in the PSW.
*/
.macro tophys grvirt, grphys
ldil L%(__PAGE_OFFSET), \grphys
sub \grvirt, \grphys, \grphys
ldil L%(-__PAGE_OFFSET), \grphys
addl \grvirt, \grphys, \grphys
.endm
.macro tovirt grphys, grvirt
ldil L%(__PAGE_OFFSET), \grvirt
add \grphys, \grvirt, \grvirt
addl \grphys, \grvirt, \grvirt
.endm
.macro tophys_r1 gr
ldil L%(__PAGE_OFFSET), %r1
sub \gr, %r1, \gr
ldil L%(-__PAGE_OFFSET), %r1
addl \gr, %r1, \gr
.endm
.macro tovirt_r1 gr
ldil L%(__PAGE_OFFSET), %r1
add \gr, %r1, \gr
addl \gr, %r1, \gr
.endm
.macro delay value
......
......@@ -40,7 +40,7 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
" addc %0, %5, %0\n"
" addc %0, %3, %0\n"
"1: ldws,ma 4(%1), %3\n"
" addib,< 0, %2, 1b\n"
" addib,> -1, %2, 1b\n"
" addc %0, %3, %0\n"
"\n"
" extru %0, 31, 16, %4\n"
......@@ -126,6 +126,7 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
** Try to keep 4 registers with "live" values ahead of the ALU.
*/
" depdi 0, 31, 32, %0\n"/* clear upper half of incoming checksum */
" ldd,ma 8(%1), %4\n" /* get 1st saddr word */
" ldd,ma 8(%2), %5\n" /* get 1st daddr word */
" add %4, %0, %0\n"
......@@ -137,8 +138,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
" add,dc %3, %0, %0\n" /* fold in proto+len | carry bit */
" extrd,u %0, 31, 32, %4\n"/* copy upper half down */
" depdi 0, 31, 32, %0\n"/* clear upper half */
" add %4, %0, %0\n" /* fold into 32-bits */
" addc 0, %0, %0\n" /* add carry */
" add,dc %4, %0, %0\n" /* fold into 32-bits, plus carry */
" addc 0, %0, %0\n" /* add final carry */
#else
......@@ -163,7 +164,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
" ldw,ma 4(%2), %7\n" /* 4th daddr */
" addc %6, %0, %0\n"
" addc %7, %0, %0\n"
" addc %3, %0, %0\n" /* fold in proto+len, catch carry */
" addc %3, %0, %0\n" /* fold in proto+len */
" addc 0, %0, %0\n" /* add carry */
#endif
: "=r" (sum), "=r" (saddr), "=r" (daddr), "=r" (len),
......
......@@ -61,7 +61,7 @@ parisc_get_drvdata(struct parisc_device *d)
return dev_get_drvdata(&d->dev);
}
extern struct bus_type parisc_bus_type;
extern const struct bus_type parisc_bus_type;
int iosapic_serial_irq(struct parisc_device *dev);
......
......@@ -618,7 +618,7 @@ static struct attribute *parisc_device_attrs[] = {
};
ATTRIBUTE_GROUPS(parisc_device);
struct bus_type parisc_bus_type = {
const struct bus_type parisc_bus_type = {
.name = "parisc",
.match = parisc_generic_match,
.uevent = parisc_uevent,
......
......@@ -498,7 +498,7 @@ asmlinkage void do_cpu_irq_mask(struct pt_regs *regs)
old_regs = set_irq_regs(regs);
local_irq_disable();
irq_enter();
irq_enter_rcu();
eirr_val = mfctl(23) & cpu_eiem & per_cpu(local_ack_eiem, cpu);
if (!eirr_val)
......@@ -533,7 +533,7 @@ asmlinkage void do_cpu_irq_mask(struct pt_regs *regs)
#endif /* CONFIG_IRQSTACKS */
out:
irq_exit();
irq_exit_rcu();
set_irq_regs(old_regs);
return;
......
......@@ -169,6 +169,7 @@ static int emulate_ldw(struct pt_regs *regs, int toreg, int flop)
static int emulate_ldd(struct pt_regs *regs, int toreg, int flop)
{
unsigned long saddr = regs->ior;
unsigned long shift, temp1;
__u64 val = 0;
ASM_EXCEPTIONTABLE_VAR(ret);
......@@ -180,25 +181,22 @@ static int emulate_ldd(struct pt_regs *regs, int toreg, int flop)
#ifdef CONFIG_64BIT
__asm__ __volatile__ (
" depd,z %3,60,3,%%r19\n" /* r19=(ofs&7)*8 */
" mtsp %4, %%sr1\n"
" depd %%r0,63,3,%3\n"
"1: ldd 0(%%sr1,%3),%0\n"
"2: ldd 8(%%sr1,%3),%%r20\n"
" subi 64,%%r19,%%r19\n"
" mtsar %%r19\n"
" shrpd %0,%%r20,%%sar,%0\n"
" depd,z %2,60,3,%3\n" /* shift=(ofs&7)*8 */
" mtsp %5, %%sr1\n"
" depd %%r0,63,3,%2\n"
"1: ldd 0(%%sr1,%2),%0\n"
"2: ldd 8(%%sr1,%2),%4\n"
" subi 64,%3,%3\n"
" mtsar %3\n"
" shrpd %0,%4,%%sar,%0\n"
"3: \n"
ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b, "%1")
ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b, "%1")
: "=r" (val), "+r" (ret)
: "0" (val), "r" (saddr), "r" (regs->isr)
: "r19", "r20" );
: "+r" (val), "+r" (ret), "+r" (saddr), "=&r" (shift), "=&r" (temp1)
: "r" (regs->isr) );
#else
{
unsigned long shift, temp1;
__asm__ __volatile__ (
" zdep %2,29,2,%3\n" /* r19=(ofs&3)*8 */
" zdep %2,29,2,%3\n" /* shift=(ofs&3)*8 */
" mtsp %5, %%sr1\n"
" dep %%r0,31,2,%2\n"
"1: ldw 0(%%sr1,%2),%0\n"
......@@ -214,7 +212,6 @@ static int emulate_ldd(struct pt_regs *regs, int toreg, int flop)
ASM_EXCEPTIONTABLE_ENTRY_EFAULT(3b, 4b, "%1")
: "+r" (val), "+r" (ret), "+r" (saddr), "=&r" (shift), "=&r" (temp1)
: "r" (regs->isr) );
}
#endif
DPRINTF("val = 0x%llx\n", val);
......@@ -399,6 +396,13 @@ void handle_unaligned(struct pt_regs *regs)
if (!unaligned_enabled)
goto force_sigbus;
} else {
static DEFINE_RATELIMIT_STATE(kernel_ratelimit, 5 * HZ, 5);
if (!(current->thread.flags & PARISC_UAC_NOPRINT) &&
__ratelimit(&kernel_ratelimit))
pr_warn("Kernel: unaligned access to " RFMT " in %pS "
"(iir " RFMT ")\n",
regs->ior, (void *)regs->iaoq[0], regs->iir);
}
/* handle modification - OK, it's ugly, see the instruction manual */
......
......@@ -15,7 +15,7 @@
* Double Floating-point Square Root
*
* External Interfaces:
* dbl_fsqrt(srcptr,nullptr,dstptr,status)
* dbl_fsqrt(srcptr,_nullptr,dstptr,status)
*
* Internal Interfaces:
*
......@@ -37,7 +37,7 @@
unsigned int
dbl_fsqrt(
dbl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_floating_point *dstptr,
unsigned int *status)
{
......
......@@ -16,8 +16,8 @@
* Double Floating-point to Single Floating-point
*
* External Interfaces:
* dbl_to_sgl_fcnvff(srcptr,nullptr,dstptr,status)
* sgl_to_dbl_fcnvff(srcptr,nullptr,dstptr,status)
* dbl_to_sgl_fcnvff(srcptr,_nullptr,dstptr,status)
* sgl_to_dbl_fcnvff(srcptr,_nullptr,dstptr,status)
*
* Internal Interfaces:
*
......@@ -40,7 +40,7 @@
int
sgl_to_dbl_fcnvff(
sgl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_floating_point *dstptr,
unsigned int *status)
{
......@@ -127,7 +127,7 @@ sgl_to_dbl_fcnvff(
int
dbl_to_sgl_fcnvff(
dbl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
sgl_floating_point *dstptr,
unsigned int *status)
{
......
......@@ -15,10 +15,10 @@
* Floating-point to Unsigned Fixed-point Converts
*
* External Interfaces:
* dbl_to_dbl_fcnvfu(srcptr,nullptr,dstptr,status)
* dbl_to_sgl_fcnvfu(srcptr,nullptr,dstptr,status)
* sgl_to_dbl_fcnvfu(srcptr,nullptr,dstptr,status)
* sgl_to_sgl_fcnvfu(srcptr,nullptr,dstptr,status)
* dbl_to_dbl_fcnvfu(srcptr,_nullptr,dstptr,status)
* dbl_to_sgl_fcnvfu(srcptr,_nullptr,dstptr,status)
* sgl_to_dbl_fcnvfu(srcptr,_nullptr,dstptr,status)
* sgl_to_sgl_fcnvfu(srcptr,_nullptr,dstptr,status)
*
* Internal Interfaces:
*
......@@ -45,7 +45,7 @@
int
sgl_to_sgl_fcnvfu(
sgl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
unsigned int *dstptr,
unsigned int *status)
{
......@@ -166,7 +166,7 @@ sgl_to_sgl_fcnvfu(
int
sgl_to_dbl_fcnvfu(
sgl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_unsigned *dstptr,
unsigned int *status)
{
......@@ -285,7 +285,7 @@ sgl_to_dbl_fcnvfu(
*/
/*ARGSUSED*/
int
dbl_to_sgl_fcnvfu (dbl_floating_point * srcptr, unsigned int *nullptr,
dbl_to_sgl_fcnvfu (dbl_floating_point * srcptr, unsigned int *_nullptr,
unsigned int *dstptr, unsigned int *status)
{
register unsigned int srcp1, srcp2, result;
......@@ -408,7 +408,7 @@ dbl_to_sgl_fcnvfu (dbl_floating_point * srcptr, unsigned int *nullptr,
*/
/*ARGSUSED*/
int
dbl_to_dbl_fcnvfu (dbl_floating_point * srcptr, unsigned int *nullptr,
dbl_to_dbl_fcnvfu (dbl_floating_point * srcptr, unsigned int *_nullptr,
dbl_unsigned * dstptr, unsigned int *status)
{
register int src_exponent;
......
......@@ -15,10 +15,10 @@
* Floating-point to Unsigned Fixed-point Converts with Truncation
*
* External Interfaces:
* dbl_to_dbl_fcnvfut(srcptr,nullptr,dstptr,status)
* dbl_to_sgl_fcnvfut(srcptr,nullptr,dstptr,status)
* sgl_to_dbl_fcnvfut(srcptr,nullptr,dstptr,status)
* sgl_to_sgl_fcnvfut(srcptr,nullptr,dstptr,status)
* dbl_to_dbl_fcnvfut(srcptr,_nullptr,dstptr,status)
* dbl_to_sgl_fcnvfut(srcptr,_nullptr,dstptr,status)
* sgl_to_dbl_fcnvfut(srcptr,_nullptr,dstptr,status)
* sgl_to_sgl_fcnvfut(srcptr,_nullptr,dstptr,status)
*
* Internal Interfaces:
*
......@@ -44,7 +44,7 @@
*/
/*ARGSUSED*/
int
sgl_to_sgl_fcnvfut (sgl_floating_point * srcptr, unsigned int *nullptr,
sgl_to_sgl_fcnvfut (sgl_floating_point * srcptr, unsigned int *_nullptr,
unsigned int *dstptr, unsigned int *status)
{
register unsigned int src, result;
......@@ -113,7 +113,7 @@ sgl_to_sgl_fcnvfut (sgl_floating_point * srcptr, unsigned int *nullptr,
*/
/*ARGSUSED*/
int
sgl_to_dbl_fcnvfut (sgl_floating_point * srcptr, unsigned int *nullptr,
sgl_to_dbl_fcnvfut (sgl_floating_point * srcptr, unsigned int *_nullptr,
dbl_unsigned * dstptr, unsigned int *status)
{
register int src_exponent;
......@@ -183,7 +183,7 @@ sgl_to_dbl_fcnvfut (sgl_floating_point * srcptr, unsigned int *nullptr,
*/
/*ARGSUSED*/
int
dbl_to_sgl_fcnvfut (dbl_floating_point * srcptr, unsigned int *nullptr,
dbl_to_sgl_fcnvfut (dbl_floating_point * srcptr, unsigned int *_nullptr,
unsigned int *dstptr, unsigned int *status)
{
register unsigned int srcp1, srcp2, result;
......@@ -252,7 +252,7 @@ dbl_to_sgl_fcnvfut (dbl_floating_point * srcptr, unsigned int *nullptr,
*/
/*ARGSUSED*/
int
dbl_to_dbl_fcnvfut (dbl_floating_point * srcptr, unsigned int *nullptr,
dbl_to_dbl_fcnvfut (dbl_floating_point * srcptr, unsigned int *_nullptr,
dbl_unsigned * dstptr, unsigned int *status)
{
register int src_exponent;
......
......@@ -18,10 +18,10 @@
* Double Floating-point to Double Fixed-point
*
* External Interfaces:
* dbl_to_dbl_fcnvfx(srcptr,nullptr,dstptr,status)
* dbl_to_sgl_fcnvfx(srcptr,nullptr,dstptr,status)
* sgl_to_dbl_fcnvfx(srcptr,nullptr,dstptr,status)
* sgl_to_sgl_fcnvfx(srcptr,nullptr,dstptr,status)
* dbl_to_dbl_fcnvfx(srcptr,_nullptr,dstptr,status)
* dbl_to_sgl_fcnvfx(srcptr,_nullptr,dstptr,status)
* sgl_to_dbl_fcnvfx(srcptr,_nullptr,dstptr,status)
* sgl_to_sgl_fcnvfx(srcptr,_nullptr,dstptr,status)
*
* Internal Interfaces:
*
......@@ -44,7 +44,7 @@
int
sgl_to_sgl_fcnvfx(
sgl_floating_point *srcptr,
sgl_floating_point *nullptr,
sgl_floating_point *_nullptr,
int *dstptr,
sgl_floating_point *status)
{
......@@ -141,7 +141,7 @@ sgl_to_sgl_fcnvfx(
int
sgl_to_dbl_fcnvfx(
sgl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_integer *dstptr,
unsigned int *status)
{
......@@ -262,7 +262,7 @@ sgl_to_dbl_fcnvfx(
int
dbl_to_sgl_fcnvfx(
dbl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
int *dstptr,
unsigned int *status)
{
......@@ -373,7 +373,7 @@ dbl_to_sgl_fcnvfx(
int
dbl_to_dbl_fcnvfx(
dbl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_integer *dstptr,
unsigned int *status)
{
......
......@@ -18,10 +18,10 @@
* Double Floating-point to Double Fixed-point /w truncated result
*
* External Interfaces:
* dbl_to_dbl_fcnvfxt(srcptr,nullptr,dstptr,status)
* dbl_to_sgl_fcnvfxt(srcptr,nullptr,dstptr,status)
* sgl_to_dbl_fcnvfxt(srcptr,nullptr,dstptr,status)
* sgl_to_sgl_fcnvfxt(srcptr,nullptr,dstptr,status)
* dbl_to_dbl_fcnvfxt(srcptr,_nullptr,dstptr,status)
* dbl_to_sgl_fcnvfxt(srcptr,_nullptr,dstptr,status)
* sgl_to_dbl_fcnvfxt(srcptr,_nullptr,dstptr,status)
* sgl_to_sgl_fcnvfxt(srcptr,_nullptr,dstptr,status)
*
* Internal Interfaces:
*
......@@ -45,7 +45,7 @@
int
sgl_to_sgl_fcnvfxt(
sgl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
int *dstptr,
unsigned int *status)
{
......@@ -109,7 +109,7 @@ sgl_to_sgl_fcnvfxt(
int
sgl_to_dbl_fcnvfxt(
sgl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_integer *dstptr,
unsigned int *status)
{
......@@ -183,7 +183,7 @@ sgl_to_dbl_fcnvfxt(
int
dbl_to_sgl_fcnvfxt(
dbl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
int *dstptr,
unsigned int *status)
{
......@@ -248,7 +248,7 @@ dbl_to_sgl_fcnvfxt(
int
dbl_to_dbl_fcnvfxt(
dbl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_integer *dstptr,
unsigned int *status)
{
......
......@@ -15,10 +15,10 @@
* Fixed point to Floating-point Converts
*
* External Interfaces:
* dbl_to_dbl_fcnvuf(srcptr,nullptr,dstptr,status)
* dbl_to_sgl_fcnvuf(srcptr,nullptr,dstptr,status)
* sgl_to_dbl_fcnvuf(srcptr,nullptr,dstptr,status)
* sgl_to_sgl_fcnvuf(srcptr,nullptr,dstptr,status)
* dbl_to_dbl_fcnvuf(srcptr,_nullptr,dstptr,status)
* dbl_to_sgl_fcnvuf(srcptr,_nullptr,dstptr,status)
* sgl_to_dbl_fcnvuf(srcptr,_nullptr,dstptr,status)
* sgl_to_sgl_fcnvuf(srcptr,_nullptr,dstptr,status)
*
* Internal Interfaces:
*
......@@ -45,7 +45,7 @@
int
sgl_to_sgl_fcnvuf(
unsigned int *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
sgl_floating_point *dstptr,
unsigned int *status)
{
......@@ -104,7 +104,7 @@ sgl_to_sgl_fcnvuf(
int
sgl_to_dbl_fcnvuf(
unsigned int *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_floating_point *dstptr,
unsigned int *status)
{
......@@ -145,7 +145,7 @@ sgl_to_dbl_fcnvuf(
int
dbl_to_sgl_fcnvuf(
dbl_unsigned *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
sgl_floating_point *dstptr,
unsigned int *status)
{
......@@ -227,7 +227,7 @@ dbl_to_sgl_fcnvuf(
int
dbl_to_dbl_fcnvuf(
dbl_unsigned *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_floating_point *dstptr,
unsigned int *status)
{
......
......@@ -18,10 +18,10 @@
* Double Fixed-point to Double Floating-point
*
* External Interfaces:
* dbl_to_dbl_fcnvxf(srcptr,nullptr,dstptr,status)
* dbl_to_sgl_fcnvxf(srcptr,nullptr,dstptr,status)
* sgl_to_dbl_fcnvxf(srcptr,nullptr,dstptr,status)
* sgl_to_sgl_fcnvxf(srcptr,nullptr,dstptr,status)
* dbl_to_dbl_fcnvxf(srcptr,_nullptr,dstptr,status)
* dbl_to_sgl_fcnvxf(srcptr,_nullptr,dstptr,status)
* sgl_to_dbl_fcnvxf(srcptr,_nullptr,dstptr,status)
* sgl_to_sgl_fcnvxf(srcptr,_nullptr,dstptr,status)
*
* Internal Interfaces:
*
......@@ -44,7 +44,7 @@
int
sgl_to_sgl_fcnvxf(
int *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
sgl_floating_point *dstptr,
unsigned int *status)
{
......@@ -115,7 +115,7 @@ sgl_to_sgl_fcnvxf(
int
sgl_to_dbl_fcnvxf(
int *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_floating_point *dstptr,
unsigned int *status)
{
......@@ -166,7 +166,7 @@ sgl_to_dbl_fcnvxf(
int
dbl_to_sgl_fcnvxf(
dbl_integer *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
sgl_floating_point *dstptr,
unsigned int *status)
{
......@@ -271,7 +271,7 @@ dbl_to_sgl_fcnvxf(
int
dbl_to_dbl_fcnvxf(
dbl_integer *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_floating_point *dstptr,
unsigned int *status)
{
......
......@@ -14,8 +14,8 @@
* Quad Floating-point Round to Integer (returns unimplemented)
*
* External Interfaces:
* dbl_frnd(srcptr,nullptr,dstptr,status)
* sgl_frnd(srcptr,nullptr,dstptr,status)
* dbl_frnd(srcptr,_nullptr,dstptr,status)
* sgl_frnd(srcptr,_nullptr,dstptr,status)
*
* END_DESC
*/
......@@ -33,7 +33,7 @@
/*ARGSUSED*/
int
sgl_frnd(sgl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
sgl_floating_point *dstptr,
unsigned int *status)
{
......@@ -138,7 +138,7 @@ sgl_frnd(sgl_floating_point *srcptr,
int
dbl_frnd(
dbl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
dbl_floating_point *dstptr,
unsigned int *status)
{
......
......@@ -15,7 +15,7 @@
* Single Floating-point Square Root
*
* External Interfaces:
* sgl_fsqrt(srcptr,nullptr,dstptr,status)
* sgl_fsqrt(srcptr,_nullptr,dstptr,status)
*
* Internal Interfaces:
*
......@@ -37,7 +37,7 @@
unsigned int
sgl_fsqrt(
sgl_floating_point *srcptr,
unsigned int *nullptr,
unsigned int *_nullptr,
sgl_floating_point *dstptr,
unsigned int *status)
{
......
......@@ -308,15 +308,13 @@ static int hppa_led_generic_probe(struct platform_device *pdev,
return 0;
}
static int platform_led_remove(struct platform_device *pdev)
static void platform_led_remove(struct platform_device *pdev)
{
struct hppa_drvdata *p = platform_get_drvdata(pdev);
int i;
for (i = 0; i < NUM_LEDS_PER_BOARD; i++)
led_classdev_unregister(&p->leds[i].led_cdev);
return 0;
}
static struct led_type mainboard_led_types[NUM_LEDS_PER_BOARD] = {
......@@ -371,7 +369,7 @@ MODULE_ALIAS("platform:platform-leds");
static struct platform_driver hppa_mainboard_led_driver = {
.probe = platform_led_probe,
.remove = platform_led_remove,
.remove_new = platform_led_remove,
.driver = {
.name = "platform-leds",
},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment