| .. | .. | 
|---|
 | 1 | +// SPDX-License-Identifier: GPL-2.0-or-later  | 
|---|
| 1 | 2 |  /* | 
|---|
| 2 | 3 |   * data_breakpoint.c - Sample HW Breakpoint file to watch kernel data address | 
|---|
| 3 |  | - *  | 
|---|
| 4 |  | - * This program is free software; you can redistribute it and/or modify  | 
|---|
| 5 |  | - * it under the terms of the GNU General Public License as published by  | 
|---|
| 6 |  | - * the Free Software Foundation; either version 2 of the License, or  | 
|---|
| 7 |  | - * (at your option) any later version.  | 
|---|
| 8 |  | - *  | 
|---|
| 9 |  | - * This program is distributed in the hope that it will be useful,  | 
|---|
| 10 |  | - * but WITHOUT ANY WARRANTY; without even the implied warranty of  | 
|---|
| 11 |  | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  | 
|---|
| 12 |  | - * GNU General Public License for more details.  | 
|---|
| 13 |  | - *  | 
|---|
| 14 |  | - * You should have received a copy of the GNU General Public License  | 
|---|
| 15 |  | - * along with this program; if not, write to the Free Software  | 
|---|
| 16 |  | - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  | 
|---|
| 17 | 4 |   * | 
|---|
| 18 | 5 |   * usage: insmod data_breakpoint.ko ksym=<ksym_name> | 
|---|
| 19 | 6 |   * | 
|---|
| .. | .. | 
|---|
| 83 | 70 |  static void __exit hw_break_module_exit(void) | 
|---|
| 84 | 71 |  { | 
|---|
| 85 | 72 |  	unregister_wide_hw_breakpoint(sample_hbp); | 
|---|
| 86 |  | -	symbol_put(ksym_name);  | 
|---|
 | 73 | +#ifdef CONFIG_MODULE_UNLOAD  | 
|---|
 | 74 | +	__symbol_put(ksym_name);  | 
|---|
 | 75 | +#endif  | 
|---|
| 87 | 76 |  	printk(KERN_INFO "HW Breakpoint for %s write uninstalled\n", ksym_name); | 
|---|
| 88 | 77 |  } | 
|---|
| 89 | 78 |   | 
|---|