mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 20:24:12 +08:00
parisc architecture updates and fixes for kernel v6.9-rc1:
- 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 -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCZfYREwAKCRD3ErUQojoP X4QSAQDSjyqKia5LyYL7M+bY83kCw/2Sn2Ug/l53qqKNB0fI3wEAiukgIXNjT0wg xUOzyxbbJigEcvGfxSLPQmGuDKlbHwA= =ohWs -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
342d965376
@ -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",
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user