Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144621669
D35607.1775834231.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D35607.1775834231.diff
View Options
Index: sys/arm/mv/gpio.c
===================================================================
--- sys/arm/mv/gpio.c
+++ sys/arm/mv/gpio.c
@@ -531,9 +531,6 @@
MV_GPIO_ASSERT_LOCKED();
-#ifdef INTR_SOLO
- isrc.isrc_filter = NULL;
-#endif
isrc.isrc_event = sc->gpio_events[pin];
if (isrc.isrc_event == NULL ||
Index: sys/kern/subr_intr.c
===================================================================
--- sys/kern/subr_intr.c
+++ sys/kern/subr_intr.c
@@ -367,15 +367,6 @@
isrc_increment_count(isrc);
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL) {
- int error;
- error = isrc->isrc_filter(isrc->isrc_arg, tf);
- PIC_POST_FILTER(isrc->isrc_dev, isrc);
- if (error == FILTER_HANDLED)
- return (0);
- } else
-#endif
if (isrc->isrc_event != NULL) {
if (intr_event_handle(isrc->isrc_event, tf) == 0)
return (0);
@@ -544,37 +535,6 @@
}
#endif
-#ifdef INTR_SOLO
-/*
- * Setup filter into interrupt source.
- */
-static int
-iscr_setup_filter(struct intr_irqsrc *isrc, const char *name,
- intr_irq_filter_t *filter, void *arg, void **cookiep)
-{
-
- if (filter == NULL)
- return (EINVAL);
-
- mtx_lock(&isrc_table_lock);
- /*
- * Make sure that we do not mix the two ways
- * how we handle interrupt sources.
- */
- if (isrc->isrc_filter != NULL || isrc->isrc_event != NULL) {
- mtx_unlock(&isrc_table_lock);
- return (EBUSY);
- }
- isrc->isrc_filter = filter;
- isrc->isrc_arg = arg;
- isrc_update_name(isrc, name);
- mtx_unlock(&isrc_table_lock);
-
- *cookiep = isrc;
- return (0);
-}
-#endif
-
/*
* Interrupt source pre_ithread method for MI interrupt framework.
*/
@@ -665,14 +625,9 @@
mtx_lock(&isrc_table_lock);
/*
- * Make sure that we do not mix the two ways
- * how we handle interrupt sources. Let contested event wins.
+ * Let contested event win.
*/
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL || isrc->isrc_event != NULL) {
-#else
if (isrc->isrc_event != NULL) {
-#endif
mtx_unlock(&isrc_table_lock);
intr_event_destroy(ie);
return (isrc->isrc_event != NULL ? EBUSY : 0);
@@ -1066,34 +1021,8 @@
data = rman_get_virtual(res);
name = device_get_nameunit(dev);
-#ifdef INTR_SOLO
- /*
- * Standard handling is done through MI interrupt framework. However,
- * some interrupts could request solely own special handling. This
- * non standard handling can be used for interrupt controllers without
- * handler (filter only), so in case that interrupt controllers are
- * chained, MI interrupt framework is called only in leaf controller.
- *
- * Note that root interrupt controller routine is served as well,
- * however in intr_irq_handler(), i.e. main system dispatch routine.
- */
- if (flags & INTR_SOLO && hand != NULL) {
- debugf("irq %u cannot solo on %s\n", irq, name);
- return (EINVAL);
- }
-
- if (flags & INTR_SOLO) {
- error = iscr_setup_filter(isrc, name, (intr_irq_filter_t *)filt,
- arg, cookiep);
- debugf("irq %u setup filter error %d on %s\n", isrc->isrc_irq, error,
- name);
- } else
-#endif
- {
- error = isrc_add_handler(isrc, name, filt, hand, arg, flags,
- cookiep);
- debugf("irq %u add handler error %d on %s\n", isrc->isrc_irq, error, name);
- }
+ error = isrc_add_handler(isrc, name, filt, hand, arg, flags, cookiep);
+ debugf("irq %u add handler error %d on %s\n", isrc->isrc_irq, error, name);
if (error != 0)
return (error);
@@ -1128,22 +1057,6 @@
data = rman_get_virtual(res);
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL) {
- if (isrc != cookie)
- return (EINVAL);
-
- mtx_lock(&isrc_table_lock);
- isrc->isrc_filter = NULL;
- isrc->isrc_arg = NULL;
- isrc->isrc_handlers = 0;
- PIC_DISABLE_INTR(isrc->isrc_dev, isrc);
- PIC_TEARDOWN_INTR(isrc->isrc_dev, isrc, res, data);
- isrc_update_name(isrc, NULL);
- mtx_unlock(&isrc_table_lock);
- return (0);
- }
-#endif
if (isrc != intr_handler_source(cookie))
return (EINVAL);
@@ -1175,17 +1088,7 @@
isrc = intr_map_get_isrc(res_id);
if (isrc == NULL || isrc->isrc_handlers == 0)
return (EINVAL);
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL) {
- if (isrc != cookie)
- return (EINVAL);
- mtx_lock(&isrc_table_lock);
- isrc_update_name(isrc, descr);
- mtx_unlock(&isrc_table_lock);
- return (0);
- }
-#endif
error = intr_event_describe_handler(isrc->isrc_event, cookie, descr);
if (error == 0) {
mtx_lock(&isrc_table_lock);
@@ -1209,10 +1112,6 @@
isrc = intr_map_get_isrc(res_id);
if (isrc == NULL || isrc->isrc_handlers == 0)
return (EINVAL);
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL)
- return (intr_isrc_assign_cpu(isrc, cpu));
-#endif
return (intr_event_bind(isrc->isrc_event, cpu));
}
Index: sys/sys/intr.h
===================================================================
--- sys/sys/intr.h
+++ sys/sys/intr.h
@@ -63,12 +63,7 @@
struct intr_irqsrc *isrc;
};
-#ifdef notyet
-#define INTR_SOLO INTR_MD1
-typedef int intr_irq_filter_t(void *arg, struct trapframe *tf);
-#else
typedef int intr_irq_filter_t(void *arg);
-#endif
typedef int intr_child_irq_filter_t(void *arg, uintptr_t irq);
#define INTR_ISRC_NAMELEN (MAXCOMLEN + 1)
@@ -90,10 +85,6 @@
u_long * isrc_count;
u_int isrc_handlers;
struct intr_event * isrc_event;
-#ifdef INTR_SOLO
- intr_irq_filter_t * isrc_filter;
- void * isrc_arg;
-#endif
/* Used by MSI interrupts to store the iommu details */
void * isrc_iommu;
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Apr 10, 3:17 PM (9 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28315320
Default Alt Text
D35607.1775834231.diff (5 KB)
Attached To
Mode
D35607: intrng: purge INTR_SOLO
Attached
Detach File
Event Timeline
Log In to Comment