/********************************************************************* * * Filename: iriap.h * Version: 0.5 * Description: Information Access Protocol (IAP) * Status: Experimental. * Author: Dag Brattli * Created at: Thu Aug 21 00:02:07 1997 * Modified at: Sat Dec 25 16:42:09 1999 * Modified by: Dag Brattli * * Copyright (c) 1997-1999 Dag Brattli , * All Rights Reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * Neither Dag Brattli nor University of Tromsø admit liability nor * provide warranty for any of this software. This material is * provided "AS-IS" and at no charge. * ********************************************************************/ #ifndef IRIAP_H #define IRIAP_H #include #include #include #include #include /* irda_queue_t */ #include /* struct timer_list */ #define IAP_LST 0x80 #define IAP_ACK 0x40 #define IAS_SERVER 0 #define IAS_CLIENT 1 /* IrIAP Op-codes */ #define GET_INFO_BASE 0x01 #define GET_OBJECTS 0x02 #define GET_VALUE 0x03 #define GET_VALUE_BY_CLASS 0x04 #define GET_OBJECT_INFO 0x05 #define GET_ATTRIB_NAMES 0x06 #define IAS_SUCCESS 0 #define IAS_CLASS_UNKNOWN 1 #define IAS_ATTRIB_UNKNOWN 2 #define IAS_DISCONNECT 10 typedef void (*CONFIRM_CALLBACK)(int result, __u16 obj_id, struct ias_value *value, void *priv); struct iriap_cb { irda_queue_t q; /* Must be first */ magic_t magic; /* Magic cookie */ int mode; /* Client or server */ __u32 saddr; __u32 daddr; __u8 operation; struct sk_buff *request_skb; struct lsap_cb *lsap; __u8 slsap_sel; /* Client states */ IRIAP_STATE client_state; IRIAP_STATE call_state; /* Server states */ IRIAP_STATE server_state; IRIAP_STATE r_connect_state; CONFIRM_CALLBACK confirm; void *priv; /* Used to identify client */ __u8 max_header_size; __u32 max_data_size; struct timer_list watchdog_timer; }; int iriap_init(void); void iriap_cleanup(void); struct iriap_cb *iriap_open(__u8 slsap_sel, int mode, void *priv, CONFIRM_CALLBACK callback); void iriap_close(struct iriap_cb *self); int iriap_getvaluebyclass_request(struct iriap_cb *self, __u32 saddr, __u32 daddr, char *name, char *attr); void iriap_connect_request(struct iriap_cb *self); void iriap_send_ack( struct iriap_cb *self); void iriap_call_indication(struct iriap_cb *self, struct sk_buff *skb); void iriap_register_server(void); #endif /commit/?h=nds-private-remove&id=d7df2443cd5f67fc6ee7c05a88e4996e8177f91b'>root/net/netfilter/xt_time.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2017-02-03 17:10:28 +1100
committerMichael Ellerman <mpe@ellerman.id.au>2017-02-08 23:36:29 +1100
commitd7df2443cd5f67fc6ee7c05a88e4996e8177f91b (patch)
tree098a7c0ca4fceb8a65cb1f693c9d71990388933d /net/netfilter/xt_time.c
parenta0615a16f7d0ceb5804d295203c302d496d8ee91 (diff)
powerpc/mm: Fix spurrious segfaults on radix with autonuma
When autonuma (Automatic NUMA balancing) marks a PTE inaccessible it clears all the protection bits but leave the PTE valid. With the Radix MMU, an attempt at executing from such a PTE will take a fault with bit 35 of SRR1 set "SRR1_ISI_N_OR_G". It is thus incorrect to treat all such faults as errors. We should pass them to handle_mm_fault() for autonuma to deal with. The case of pages that are really not executable is handled by the existing test for VM_EXEC further down. That leaves us with catching the kernel attempts at executing user pages. We can catch that earlier, even before we do find_vma. It is never valid on powerpc for the kernel to take an exec fault to begin with. So fold that test with the existing test for the kernel faulting on kernel addresses to bail out early. Fixes: 1d18ad026844 ("powerpc/mm: Detect instruction fetch denied and report") Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Acked-by: Balbir Singh <bsingharora@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'net/netfilter/xt_time.c')