Storage_probe is a very interesting function with a total length of less than 100 rows, but has done a lot of things. It is like the Back Waist on the football field, such as Chelsea's mark le. It is not remarkable on the court, however, they have made outstanding contributions to the entire team.
Let's continue to read the storage_probe code:
972 mutex_init (& (us-> dev_mutex ));
973 init_MUTEX_LOCKED (& (us-> sema ));
974 init_completion (& (us-> notify ));
975 init_waitqueue_head (& us-> delay_wait );
976
977/* Associate the us_data structure with the USB device */
978 result = associate_dev (us, intf );
979 if (result)
980 goto BadDevice;
981
982 /*
983 * Get the unusual_devs entries and thedescriptors
984 *
985 * id_index is calculated in thedeclaration to be the index number
986 * of the match from the usb_device_idtable, so we can find
987 * corresponding entry in the privatetable.
988 */
989 result = get_device_info (us, id );
990 if (result)
991 goto BadDevice;
992
The storage_probe function is short because it calls a large number of functions. So it seems that a short piece of code actually takes several hours to read the code.